问题标签 [typescript2.2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用 TypeScript 接口在 JS 代码中进行运行时验证
我可以像这样创建一个 TypeScript 接口,这将有助于静态类型:
但我想知道是否有办法将此信息转换为 JS 并使用它来进行运行时验证?否则我可能不得不在两个不同的地方跟踪这些信息,这并不有趣。
任何人都知道这是否可能以某种方式?
它可能看起来像
然后我可以使用这样的对象来进行运行时验证。
typescript - 如何参数化类装饰器功能?
我有以下测试代码,从互联网上的示例中收集:
用我编译tsc --experimentalDecorators test.ts
没有任何警告或任何问题。但是调用它(使用node test.js
命令),我得到以下结果:
我认为,装饰器无法正常工作,正如网上大多数示例(对于打字稿 1.5)所示。
如何正确实现这个装饰器?
生成的 javascript 代码是这样的:
angular - Typescript 2 通配符模块
我在 Angular 2 应用程序中导入 html 模板时遇到问题。
在 globals.d.ts
在 app.component.ts
该应用程序正常工作并且模板已加载,但我收到此错误 TS2352:类型 'typeof "*.html"' 无法转换为类型 'string'。有人有解决方法吗?
我想改为这样做。
但是转译的代码最终是这样的。
app_component_html_1 是我需要的字符串。他们为什么要添加 .default?
visual-studio-2015 - AMD RequireJS @types TypeScript 2 Visual Studio 2015 噩梦
我被分配了一项任务,将我们的 angularJs 项目更新为 TypeScript 2
我们目前使用 requirejs (AMD) 来填充库,然后使用
import 'angular';
import 'lodash';
据我所知,这是一个 ES6 模块加载语法。我们声明一个主应用程序模块并在其中导入库,然后在导入应用程序模块时
import 'Application';
这也是由 requirejs 填充的,当我们导入它时,我们会自动获取应用程序的所有导入库列表。
我实际上将项目成功更新为 TypeScript 2!!!
但是,当我尝试使用 @types 来包含 TypeScript 声明文件时,就会出现问题。
没有关于如何完成这项工作的完整参考!
****** 问题!******
当我尝试使用 @types/lodash 时,我在所有现有文件中都丢失了 _ (lodash) 的智能感知。
当我尝试
import * as _ from 'lodash';
然后我面临一个不同的错误:
Build:Module augmentation cannot introduce new names in the top level scope.
我的理解是 .d.ts 文件导出 UMD 模块。但是如何在我的 Visual Studio 2015 中引用 @types?
请帮忙!谢谢。
node.js - 如何捆绑 typescript-node-express 应用程序
我想构建一个完整的全栈 Web 应用程序。我的服务器端代码在打字稿中。我想配置我的项目,使其来自以下结构:
- projectFolder/src/(server-side typescript files) -包含一个 index.ts 主文件
projectFolder/public/(client-side code) - 来自 index.ts express 代码。
项目文件夹/ serverCodeBundle.js
当我在处理我的服务器端代码时,我希望在后台运行一些 watch 命令,并将我的所有 ts 文件捆绑到一些serverCodeBundle.js中,以便将其源映射到原始 ts 文件。
为了简单起见,假设我的服务器端代码如下所示(为简单起见,我省略了客户端代码服务):
运行 nodemon serverCodeBundle.js 应该会出现一条错误消息,指定错误来自 A.ts。
我已经在每个 ts 文件的开头尝试了 tsify[连同 require("source-map-support").install() (也只在 index.ts 中)和 tsconfig 中的 sourcemap 选项] 但无法得到它去工作。
是否有任何 tsify 配置、yeoman 生成器或任何其他捆绑器可以做到这一点?
typescript - Angular 4 和 Datejs 上的打字稿错误
我将Angular 4.0.0与Typescript 2.2.1和datejs 1.0.0-rc3一起使用。每当我尝试编译应用程序 ( npm start ) 时,都会收到以下打字稿错误:
编码:
查看文件node_modules/@types/datejs/index.d.ts
,函数的声明parse()
显然是Date:
有人知道发生了什么吗?
visual-studio-code - 无法使用 Visual Studio Code 编译 ts 2.2.2 文件
我无法编译单个 ts-2.2.2 文件,我得到的输出是:
错误 TS5023:未知的编译器选项“strictNullChecks”。
错误 TS5023:未知的编译器选项“alwaysStrict”。
在右下角 VSCode 显示TypeScript 2.2.2,这是我要定位的版本。但是,如果我打开我的 *.ts 文件,屏幕顶部会出现一条警告,提示“版本不匹配!全局 tsc (1.8.34) != VS Code 的语言服务 (2.2.2)。可能会出现不一致的编译错误”。
如果我执行命令'where tsc'我得到:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.js
如何明确指出打字稿编译器以便构建过程使用 ts 2.2.2?
node.js - TypeScript 只提取了我的 lib 目录中的一小部分文件,不知道为什么
我遇到了 TS 问题,其中 tsc 编译器没有拾取我的 lib 目录中的所有 .ts/.js 文件。这是一个非常简单的问题,不知道为什么会这样。tsc 只收集了大约 20% 的文件总数。有人知道为什么它不会在我的 lib 目录中提取所有这些吗?
我尝试了“经典”和“节点” moduleResolution
,同样的问题。
我有这个 tsconfig.json 文件:
使用此命令:
我有以下输出
这是输出:
node.js - 配置对象无效。Webpack 已使用与 Angular V4.0.0 中的 API 模式 2 不匹配的配置对象进行初始化
我已将 webpack 包更新到最新版本 2.3.2,并且我正在使用 Angular V4.0.0、typescript V2.2.2。运行“npm run build”命令时抛出以下错误。并且它在更新后对 angular2 工作正常,它抛出了错误