展开

关键词

从C#到TypeScript - async await

从C#到TypeScript - async await上两篇分别说了Promise和Generator,基础已经打好,现在可以开始讲async await了。 async await是ES7的议案,TypeScript在1.7版本开始支持async await编译到ES6,并在2.1版本支持编译到ES5和ES3,算是全面支持了。 await必须要在async块中,await的对象可以是Promise对象也可以不是,不是的话会自动转为已经resolved的Promise对象。 async返回Promise状态一个async函数中可以有N个await,async函数返回的Promise则是由函数里所有await一起决定,只有所有await的状态都resolved之后,async 先来看看async awaitTypeScript翻译后的结果:async function run(){ await delay(); console.info(run);}翻译成function

46860

【译】Typescript 3.8 常用新特性一览

相关文章导航Typescript 3.7 常用新特性一览Typescript 3.8 常用新特性一览Typescript 3.9 常用新特性一览Typescript 4.0 beta 常用新特性一览写在最前面 )await 仅在 async 函数体内被允许。 但是,对于 top await ,我们可以 await 在模块的顶层使用。 async function main() { const response = await fetch(...); const greeting = await response.text(); console.log ,这里有一个微妙之处:顶层await仅在模块的顶层起作用,并且只有当TypeScript找到一个真正可用的模块才允许使用,我们可以用一个 export {} 来检测是否在模块下使用。

12220
  • 广告
    关闭

    最壕十一月,敢写就有奖

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用现代化的脚本进行 ArcGIS JS API 开发

    map: map, container: viewDiv, extent: { * ... * } });})如果使用 esri-loader , 则完成同样的功能, 需要的代码如下:const = await :export class MapApp { async loadScript() { const AGS_SDK = http:localhostarcgis-js-apilibrary4.16; await AGS_SDK}init.js`, css: `${AGS_SDK}esrithemeslightmain.css` }); } async initMap(container) { const = await 4247784, spatialReference: 102100 } }); } add a feature layer to map async addFeatureLayer() { const = await app.loadScript(); await app.initMap(viewDiv); await app.addFeatureLayer();}); 使用 TypeScript 进行 ArcGIS

    43910

    TypeScript 3.8 Beta

    async function main() { const response = await fetch(...); const greeting = await response.text(); console.log 在当前的 JavaScript 中(以及其他具有相似功能的大多数其他语言),await 仅仅只能用于 async 函数内部。 然而,使用 top-level await 时,我们可以在一个模块的顶层使用 await。const response = await fetch(...) :top-level await 仅仅只能在一个模块的顶层工作 —— 仅当 TypeScript 发现文件代码中含有 export 或者 import 时,才会认为该文件是一个模块。 top-level await 并不会在你可能期望的所有环境下工作。

    27530

    Serverless 最佳实践之数据库的连接和查询

    Serverless 最佳实践的第二讲来了,本讲将帮你 Get 以下技巧: 利用云函数的生命周期来管理数据库连接,降低连接数并提升性能使用 Knex 简化 Sql 拼接,并与 TypeScript 结合提升代码质量适时分库提升数据库性能 返回云函数实例export default new Func({ plugins: , 插件管理,FaasJS 将自动管理插件的生命周期 async handler(){ 业务代码 return await 使用 Knex、TypeScript 结合提升开发效率和质量Knex 是一个 SQL 语句生成插件,并且可以与 TypeScript 结合,大幅简化开发者对数据库的操作。 pool); 复用 sql 插件自动维护的数据库连接 return await users.where({ id: 1 }); Knex 形式的数据库查询 }});上面的代码中有两个要点: Knex 具体示例可以点击下方的“阅读原文”,查看我在 Github 上写的示例代码,示例代码中包括了以下最佳实践示例: 基于 Knex 和 TypeScript 定义共用数据表基于文件夹来分库分业务

    1K40

    使用TS+Sequelize实现更简洁的CRUD

    mysql.createConnection({})const tableName = animal connection.connect() 我们假设已经支持了Promise 查询const = await Animal.findAll({ raw: true,}) 新增const name = Nikoconst weight = 70 await Animal.create({ name, weight 是基于Sequelize针对TypeScript所实现的一个增强版本,抛弃了之前繁琐的模型定义,使用装饰器直接达到我们想到的目的。 使用Sequelize-typescript实现模型的继承因为TypeScript的核心开发人员中包括C#的架构师,所以TypeScript中可以看到很多类似C#的痕迹,在模型的这方面,我们可以尝试利用继承减少一些冗余的代码 const results = await Dog.getList() results.leg TS提示错误但是如果你像上边那样使用的话,TS会提示错误的: 类型“Animal”上不存在属性“leg”

    41620

    合约开发全新技术栈:Buidler + Ethers + Waffle + Typescript【译】

    Typescript 无处不在Typescript 最近很火,这是有原因的。对我而言,Typescript 的最大的改变是 IDE的集成,它提供所有类属性,对象键,函数参数等的自动补全功能。 熟悉Typescript之后,我再也不会回过头来编写原始Javascript了。上面提到的所有工具都可以与Typescript一起很好地工作,并且一旦完成所有设置,开发的体验很梦幻。 安装Typescript需要的依赖项:$ npm install --save-dev ts-node typescript @typesnode @typesmocha在根目录中创建tsconfig文件 设置完成后,我们可以在Typescript中获得合约函数的类型提示! { await counter.countUp(); await counter.countDown(); const count = await counter.getCount(); expect

    65040

    TypeScript 演化史 — 第五章】将 asyncawait 编译到 ES3ES5 (外部帮助库)

    number) { return new Promise(function(resolve) { setTimeout(resolve, ms) })}delay 函数返回一个 promise,调用时可以使用 await function(resolve) { setTimeout(resolve, ms); })} async function asyncAwait () { console.log(开始执行...); await delay(); console.log(1 秒过后) await delay(); console.log(过 2 秒后执行完成);}现在,如果调用 asyncAwait 函数,在控制台会看到三个消息 { setTimeout(resolve, ms); })} async function asyncAwait () { console.log(开始执行...); await delay(); console.log (1 秒过后) await delay(); console.log(过 2 秒后执行完成);}这里没什么可说的,这是咱们自己编写的代码,只是没有类型注释。

    56220

    最全面的 Deno 入门教程

    但是 Deno 不是 Node.js,而是全新的 JavaScript 运行时,同时也支持 TypeScript。 Deno 是由 V8 JavaScript 引擎、Rust 和 TypeScript 实现的用于安全服务器端的 JavaScript 和 TypeScript 全新运行时。 尽管 TypeScript 不断受到欢迎,但具有一流 TypeScript 支持的 Deno 可能是这种趋势的合适答案。 毕竟它只是一个可执行的 JavaScript(或 TypeScript)文件,不需要过多关注其环境。 在默认情况下,它是权限是安全的,并与许多客户端的 API 兼容,有着诸如 top level await 等现代功能,并支持 JavaScript 和 TypeScript

    44010

    Deno 环境下的 TypeScript 开发入门手册

    先从 Deno 功能列表开始:它基于 JavaScript 语言的现代功能它有全面的标准库它以 TypeScript 为核心,以许多不同的方式带来了巨大的优势,包括一流的 TypeScript 支持(你不必单独编译 这个命令的一种更常见的使用方法是执行包含在 TypeScript 文件中的 Deno 程序。你可以同时运行 TypeScript(.ts)文件与 JavaScript(.js)文件。 如果你不熟悉 TypeScript,请不要担心:尽管 Deno 是用 TypeScript 编写的,但是你也可以用 JavaScript 编写“客户端”程序。 for await (const req of s) { req.respond({ body: Hello Worldn })} 请注意,由于 Deno 实现了 top-level await (https :flaviocopes.comjavascript-await-top-level),因此无需使用 await 关键字即可将其包装到 async 函数中。

    39020

    Typescript + Node 配合 mongDB 写简单接口

    提示:需要对 Typescript 有一定了解,server 和 client 端均使用 Typescript默认已经安装好 yarn或者npm您可以按照顺序阅读全栈 Todolist-server 篇 modelstodo const getTodos = async (req: Request, res: Response): Promise => { try { const todos: ITodo = await Response): Promise => { try { const { params: { id }, body, } = req const updateTodo: ITodo | null = await Todo.findByIdAndUpdate( { _id: id }, body ) const allTodos: ITodo = await Todo.find(); res.status(200 技术栈参考如果对上面技术栈不太熟悉的同学可以优先参考以下文档 react 官网typescript 官网node 官网mongoDB 官网翻译来自freeCodeCamp

    16420

    Typescript: the Good Parts

    本文作者:IMWeb 杨文坚 原文出处:IMWeb社区 未经同意,禁止转载 Typescript: the Good Parts Douglas Crockford 曾经扯了个Javascript的蛋 ,这次我来学一下,扯一下Typescript的。 async function main() { await ping();} async function ping() { for (var i = 0; i < 10; i++) { await delay number) { return new Promise(resolve => setTimeout(resolve, ms));} main();Any JavaScript code is a valid TypeScript code可以直接在Typescript中只使用Javascript而不会产生任何问题,这样对迁移和混用都足够友好。

    25590

    Typescript: the Good Parts

    本文作者:IMWeb 杨文坚 原文出处:IMWeb社区 未经同意,禁止转载 Typescript: the Good Parts Douglas Crockford 曾经扯了个Javascript的蛋 ,这次我来学一下,扯一下Typescript的。 async function main() { await ping();} async function ping() { for (var i = 0; i < 10; i++) { await delay number) { return new Promise(resolve => setTimeout(resolve, ms));} main();Any JavaScript code is a valid TypeScript code可以直接在Typescript中只使用Javascript而不会产生任何问题,这样对迁移和混用都足够友好。

    14810

    Nodejs中使用mariadb库连接MySQL数据库

    前言最新写了一个水质同步入库的TypeScript程序,数据库使用的是MySQL,于是选择了mariadb这个库,其npmjs官网地址为https:www.npmjs.compackagemariadb password: myPassword, connectionLimit: 5});async function asyncFunction() { let conn; try { conn = await pool.getConnection(); const rows = await conn.query(SELECT 1 as val); console.log(rows); const res = await conn.query(INSERT INTO myTable value (? www.npmjs.compackagemariadb Non-blocking MariaDB and MySQL client for Node.js.MariaDB and MySQL client, 100% JavaScript, with TypeScript

    49010

    明知 | TypeScript 结合 egg.js 基本使用

    全局安装ts npm install -g typescript 进行全局的测试 $ tsc -vVersion 3.2.2 这样就完成了本地全局的ts的安装 安装egg 这里实现全局安装egg,并初始化依赖项目 const page = ctx.query.page; console.log(page); const result = ming; console.log(result); await ctx.render export interface NewsItem { id: number; title: string;} 编写相关的控制器 定义相关方法 eslint-disable-next-line @typescript-eslintno-unused-vars const page = ctx.query.page; console.log(page); const result = ming; console.log(result); await ctx.render : () => Promise) => { name 就是 config.default.js 中 uuid 下的属性 ctx = ctx; console.info(options.name); await

    22120

    巧用 TypeScript(三)

    复制代码使用通常,我们使用 Promise.all 并行发出多个请求:interface A { name: string;} interface B { age: number;} const = await Promise.all()复制代码此时,TypeScript 能推出 a 的类型是 A, b 的类型是 B。 才发出第二个请求: 使用类型注解const requestList: = ;if (flag) { requestList = (axios.get(http:some.2));};const = await 现在,你可以通过断言的方式,来让程序正常运作:const requestList: any; 设置为 any = (axios.get(http:some.2));}const = await Promise.all (requestList) as 类型安全复制代码字面量类型在 JavaScript 基础上,TypeScript 扩展了一系列字面量类型,用来确保类型的准确性。

    32420

    TypeGraphQL的尝试

    我们在准备使用 TypeScript 来写 GraphQL 的时候,我们会有面临一个最大的问题GraphQL Schema Type DSL 和数据 Modal 需要写两份么? 下面我会先介绍如何构建一个基于 egg.js 的 TypeScript + GraphQL 工程,然后会介绍一些 TypeGraphQL 常见用法。 构建初始化工程egg.js 对 TypeScript 现在已经有了比较好的支持 (参考),下面我们先创建一个基于 TypeScript 的 egg.js 工程。 export const ResolveTime: MiddlewareFn = async ({ info }, next) => { const start = Date.now(); await 可以来做一些全局相关的事情,比如异常拦截,请求跟踪(数据量大小,深度控制)等const schema = await buildSchema({ resolvers: , globalMiddlewares

    1.1K10

    Node.js 配合 express 框架、mongodb 实践 &&

    一、Node.js默认使用commonJs的模块化方案,TypeScript默认是ES6的模块化方案,两者有本质区别。 (使用相对路径),暴露接口使用exports或者module.exports 2.TypeScript的 import * from url 的引入依赖,需要填写完整的相对路径,否则是找不到模块的,暴露接口使用 export .3.Node中使用TypeScript需要下一些包去支持,比如express框架这些,还有一些支持内置对象的包:4.github源码下载地址 dependencies: { @babelcore devDependencies: { @typesexpress: ^4.16.1, @typesnode: ^11.11.4, ts-loader: ^5.3.3, ts-node-dev: ^1.0.0-pre.32, typescript err) { console.log(端口号监听成功) } else { console.log(端口监听失败, err) }}) ----------------- 这是TypeScript版本 import

    36620

    聊聊Deno的那些事

    Deno 是一个简单、现代、安全的 JavaScript、TypeScript、Webassembly (https:webassembly.org) 运行时环境。 TypeScript (https:www.typescriptlang.org)V8 (https:v8.dev)Deno 的背景? , a+); 关闭读写权限await Deno.permissions.revoke({ name: read });await Deno.permissions.revoke({ name: write 使用 Deno 运行 TypeScript 代码不需要编译步骤以及繁琐的配置文件—— Deno 会自动为你执行这一步骤。 ; 前段时间 Deno 内部把 TS 改回 JS 的讨论很是热闹,但并不意味着 Deno 放弃了 TypeScript,它依然是一个安全的 TSJS Runtime。

    12110

    前端-学习JavaScript是一种什么样的体验?

    我会考虑用 Webpack + SystemJS + Babel 来转译 TypescriptTypescript?我们不是在说 JavaScript 吗?! 显然 Typescript 可以做到。Flow 也可以做到,区别是 Typescript 需要编译,而 Flow 只是检查语法。唉,Flow 是? 然后用 await 和 async 管理 Promise,这样才能控制好异步任务。这是你第三次说 await 了,那是什么东西? 为了使用 await,把 Typescript 编译之后再用 Babel 转译一道的人才是疯了。啥玩意?Typescript 不支持 await?下个版本就支持了。我已经无话可说了。你看其实很简单。 但是由于我要用函数式编程和强类型语言,所以我首先要用上 Typescript 或者 Flow。对的。如果我要用 await,那我就必须用 Babel 转译。对的。

    20030

    相关产品

    • 云服务器

      云服务器

      腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券