问题标签 [typescript1.6]

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.

0 投票
2 回答
1649 浏览

javascript - Typescript 编译排序问题 gulp-typescript, tsc 1.6

我在 Visual Studio 2015 项目中使用 gulp-typescript:"2.9.0" 和 typescript:"1.6.2" 将 angular typescript 文件的文件夹编译为单个 app.js 文件。我遇到的问题是连接的输出顺序不正确导致角度抛出异常。最初,我能够更改文件名的字母顺序,并且可以获得正确的顺序,但这只是停止工作。我还尝试将所有文​​件以正确的顺序包含在“_references.ts”文件中,但这似乎不起作用。我在下面包含了我正在使用的 _references.ts 文件。文件“app.config.ts”总是出现在输出的顶部,它取决于“app.module.ts”文件。有人对此有解决方案吗?

0 投票
2 回答
4263 浏览

javascript - 如何在没有模块声明的情况下在 Typescript 中导入

我有一堆自动生成的模块,我需要从我的打字稿文件中引用它们。

例如

我正在生成带有 ES5 输出的 CommonJS 模块。所以我不能使用amd-dependency(因为它仅适用于 amd 模块)。而且我也无法手动声明该模块,因为 1. 它是自动生成的,并且 2. 它具有相对路径。

Typescript 1.6 目前显示一个错误,说它“找不到模块”。我如何让它抑制这个错误并导入?

0 投票
1 回答
1684 浏览

typescript - 打字稿中的封装-类中的私有函数?Angular 服务和工厂

我有一个用 JS 编写的扫雷游戏,现在正在尝试转换为 typescript。在这个游戏中,我实现了一个“GameFactory”,它包含很多私有函数,只导出需要公开的函数。关于打字稿的方法,我似乎误解了一些非常基本的东西。

本质上,据我所知,打字稿不支持类内部的真正私有变量,除非它们位于构造函数或模块中。通过真正的私有,我指的是对象上不可用的变量,而不是 private 关键字。

在 TypeScript 中实现封装的正确方法是什么?将它与 AngularJS 工厂/服务结合起来的最佳实践是什么?当然,我可以将所有代码放在构造函数中,从而实现常规的 JS 函数范围封装,但这对我来说似乎是错误的,因为它并没有真正使用 TypeScript 的功能。
就像我说的那样,我正在尝试真正理解关于这些问题的 TypeScript 范式,如果有人能指出我正确的方向,那就太好了,因为我搜索并无法找到对这些问题的良好解释

0 投票
2 回答
6769 浏览

node.js - Express.js 使用 Typescript 路由

我想使用Express.js和 Typescript 来指定更模块化/OO 的代码。

我想通过实现 IRoute 接口然后将新 Route 添加到 app.use() 来实现 Route/Controller。

我面临的问题是每个操作(get、post、put、delete)本身都会返回 IRoute 接口,我不确定要返回什么。在操作中返回 return <IRoute> this;是行不通的。

带有以下错误消息的打字稿编译器响应:

类 MessurmentsController 错误地实现了接口 IRoute。财产类型all是不相容的。类型(req: Request, res: Response, next: Function) => void不可分配给type (...handler: RequestHandler[]): IRoute。参数类型reqhandler不兼容。类型Request不可分配给 type RequestHandler

d.ts 中的 Route 定义为

知道我需要在操作中返回什么才能使其正常工作吗?

0 投票
1 回答
1238 浏览

typescript - 环境模块中的相关模块

从 TypeScript 1.6.2 开始,有一个长期“缺陷”的“修复”,它使得无法将相关模块导入环境模块,现在我的一些代码正在破坏。我们利用 AMD 环境,其中我们有一个插件模块,当在 Node 下执行时加载 CommonJS 模块。特别是,我使用 Intern 作为测试框架并开发了一些设计为仅用作 CommonJS 模块的东西。

例如,我曾经有这样的声明:

但现在我明白了Import or export declaration in an ambient module declaration cannot reference module through relative module name.

我无法弄清楚如何在我的环境模块中为我的项目中包含的东西绝对解析一个模块。当然,以下表示index无法找到:

0 投票
1 回答
2297 浏览

visual-studio-2013 - TypeScript 1.6 错误:JSX 元素类型 XXX 没有任何构造或调用签名

使用此代码,我收到以下错误消息: JSX 元素类型“CommentList”没有任何构造或调用签名。

相同的代码适用于纯 HTML/JS(遵循本教程:https ://facebook.github.io/react/docs/tutorial.html )

我不知道为什么 TypeScript 不喜欢它。将 Visual Studio 2013 与 TS 1.6 一起使用(http://blogs.msdn.com/b/typescript/archive/2015/09/16/announcing-typescript-1-6.aspx

0 投票
2 回答
2527 浏览

typescript - 用户定义的类型保护 [typescript]

使用 TypeScript 1.6 可以编写函数来检查对象与接口。(以下是 MSDN 的公告和使用方法。)

我的问题针对返回表达式 return a.name === 'kitty';

  1. 发挥它的作用?
  2. 所有的猫都必须叫kitty吗?

用户定义的类型保护

[ http://blogs.msdn.com/b/typescript/archive/2015/09/16/announcing-typescript-1-6.aspx ]

在早期版本的 TypeScript 中,您可以使用 if 语句来缩小类型。例如,您可以使用:

if (typeof x === "number") { … }

这有助于类型信息流入运行时处理类型的常用方法(受到其他一些进行 JS 类型检查的项目的启发)。虽然这种方法很强大,但我们想进一步推动它。在 1.6 中,您现在可以创建自己的类型保护函数:

这使您不仅可以使用 typeof 和 instanceof 检查,这需要 JavaScript 可以理解的类型,而且现在您可以使用接口并进行自定义分析。Guard 函数由它们的“a is X”返回类型表示,如果预期类型现在是什么,它会返回布尔值并向编译器发出信号。

0 投票
2 回答
663 浏览

reactjs - react-router typescript navigation 0.13.3 - 无法读取属性“路由器”

我正在尝试将现有的反应项目转换为打字稿。除了 react-router 的 Navigation mixin(版本 0.13.3)之外,几乎所有东西都运行良好。我目前收到一条错误消息,指出“无法读取未定义的属性‘路由器’。”

我的主页代码目前如下所示:

0 投票
3 回答
2322 浏览

jquery - TypeScript 不允许在 .data() 和数字/字符串之间进行比较

由于 typescript 的强类型特性,在比较 jQuery .data() 调用的结果和像多个字符串这样的简单类型时似乎存在问题。

例如:

以上将产生错误Operator '===' cannot be applied to types 'JQuery' and 'number'.

TypeScript 将结果.data()视为 JQuery 类型,因此不可能像预期的复杂类型那样在其之间进行评估。

到目前为止,唯一的解决方法是在调用.toString()结束时.data()调用,但这意味着修改所有当前.data()调用及其比较。这也使得数字比较>变得不可能,因为我们无法在字符串和数字之间进行比较。

此问题似乎仅在更新到 TypeScript 1.6 后才会出现。

0 投票
5 回答
77947 浏览

typescript - 如何构建实用程序类

我有几个实用功能。将它们打包然后导入它们的最佳方法是什么?

这就是我想要做的:

然后在课堂上:

我从 VS 得到的错误信息是:

Property doSomething does not exist on type util.