问题标签 [typescript2.0]

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 投票
1 回答
1328 浏览

javascript - Array上不存在Angular2 find

我有一个使用 typescript 2.0.4 的 angular2 项目(2.0.0)。

我有这个代码:

我在 find 方法上遇到错误:

类型“string[]”上不存在属性“find”。

我在几个数组上得到了这个错误——不仅仅是这个。一对是 number[],一个是 string[],一个是自定义对象。

如果我编译到 es6 它可以工作,但我需要以 es5 为目标。

我需要打字吗?

0 投票
1 回答
863 浏览

typescript - 在不使用 ts.createProgram 的情况下创建 Typescript TypeChecker?

我正在使用 typescript 库进行一些反思。首先,我使用ts.createSourceFile和传递存储在内存中的文件。这非常有效,我可以轻松地通过节点来匹配绑定语法(在 html 文件中)与 ViewModels(打字稿),以确保访问良好。

我的问题是我现在想对我拥有的 ts.SourceFile 对象进行一些基本的类型检查。到目前为止,我只能将TypeChecker接口跟踪回Program类。不幸的是,ts.createProgram需要文件的路径,而我想传递SourceFile我已经拥有的集合。

有没有办法使用ts.SourceFile我已经拥有的对象进行类型检查?我真正需要知道的是右侧是否可分配给左侧,我在左侧都有类型节点。

0 投票
2 回答
330 浏览

typescript - 如何忽略由“从不”类型引起的编译时错误

TypeScript Playground 中的错误演示

Typescript 知道我对该函数的每次调用都在传递 type PermanentError,因此在 else 子句中,参数“error”的类型已更改为“never”,这会导致编译时错误,因为 never 没有消息字段:

Typescript现在对代码是正确的,但我希望它处理未来代码可能通过的所有可能的错误,什么是 Typescript-2 解决这个问题的好方法?

以下没有奏效:

但这也是试图绕过流类型分析,更熟悉流类型分析语言的人可能对我正在做的事情有完全不同的方法。

更新

使用 Sohnee 的 Playground 示例,很明显 TypeScript 错误取决于 PermanentError,而不是程序传递给函数的参数。

如果 PermanentError 包含 toString(),则可以看到错误,如下所示:

然而奇怪的是,向该类添加另一个方法会使错误消失

空的 PermanentError 类一样:

也许这是一个 TypeScript 错误,我应该把它带到他们的错误跟踪器?

0 投票
2 回答
817 浏览

typescript - 在 typescript 2.0 中搜索类型定义的规范方法

由于 typescript 2.0 而不是打字,我们应该使用 npm install @types/<package-name>.

在打字中,我们有typings search用于包查找的命令。我的问题是 - 在@types 中搜索类型定义的规范方法是什么?

因此,澄清一下,到目前为止,工作流程是:

  1. typings search <package-name>
  2. typings install [--global] <package-name>

现在:

  1. 问题是关于这一步
  2. npm install --save-dev @types/<package-name>
0 投票
1 回答
5906 浏览

typescript-typings - Saving npm @types typings with --save or --save-dev

TypeScript 2 recommends using npm for types. In The Future of Declaration Files.

the example is:

My question is whether --save-dev should be used in an application, because TypeScript is transpiled and not deployed? Some comments on the article mention similar, but there is no answer I could see.

Perhaps --save is useful in a library to drag around the types when others install your library?

Am I missing something else this is useful for and what is the best practice? Thanks.

0 投票
0 回答
48 浏览

generics - 解构在接口中定义的参数

对于为什么这不起作用,我在这里有点困惑。有人可以解释为什么plans在 PricingComponent 中并不意味着从定义的接口输入。

0 投票
1 回答
796 浏览

typescript - Webpack 2.x,__webpack_public_path__ 仍然有效吗?

我有一个 chrome 扩展,其中发布了不稳定、稳定和夜间版本,我需要能够动态设置扩展资源的公共路径。我一直在尝试以多种方式添加它,通过将 js 条目直接添加到 webpack.config.js 中,从我的 ts 条目中导入,直接放入 ts 文件中。

我只想将 __webpack_public_path__ 全局更改为我不能指望在构建之间始终保持相同的东西。

我试过这样:

有谁知道自 Webpack 2.x 以来这是否发生了变化?

更新!

这是我的 webpack.config.development.js

webpack-setups.js 的内容

package.json 片段:

0 投票
1 回答
31 浏览

generics - 如何声明一个可选接受回调的函数,并且只有在没有回调的情况下才返回 Promise?

运行 El Capitan 10.11.6 的 Mac 上的 TypeScript v2.0.2

我有一个执行异步操作的函数,并且:

  • 要么接受回调,不返回任何内容,稍后调用回调,
  • or 不接受回调,并返回一个 Promise,稍后解决。

似乎我有过类似的代码工作,(见https://github.com/psnider/mongodb-adaptor/blob/master/src/ts/MongoDBAdaptor.ts)但现在这失败了,我可以不知道为什么!

我可以通过从 create() 的实现中删除返回类型规范,将它们替换为any来编译它。但这似乎大错特错!

这是 TypeScript Playground 中的代码: http://www.typescriptlang.org/play/index。html#src=declare%20abstract%20class%20SlimDocumentDatabase%3CT%3E%20%7B%0A%20%20%20%20create(obj%3A%20T)%3A%20Promise%3CT%3E%0A%20%20 %20%20create(obj%3A%20T%2C%20done%3A%20(error%3A%20Error%2C%20result%3F%3A%20T)%20%3D%3E%20void)%3A%20void%0A %7D%0A%0A%0Aclass%20SlimAdaptor%3CDocumentType%3E%20implements%20SlimDocumentDatabase%3CDocumentType%3E%20%7B%0A%20%20%20%20%2F%2F%20create(obj%3A%20DocumentType)% 3A%20Promise%3CDocumentType%3E%0A%20%20%20%20%2F%2F%20create(obj%3A%20DocumentType%2C%20done%3A%20ObjectCallback%3CDocumentType%3E)%3A%20void%0A%20 %20%20%20create(obj%3A%20DocumentType%2C%20done%3F%3A%20(错误%3A%20Error%2C%20result%3F%3A%20DocumentType)%20%3D%3E%20void)%20 %3A%20void%20%7C%20Promise%3CDocumentType%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20(完成)%20%7B%0A%20% 20%20%20%20%20%20%20%20%20%20%20完成(未定义%2C%20obj)%0A%20%20%20%20%20%20%20%20%20%20%20%20返回%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20 %20%20%20%20%20%20return%20Promise.resolve%3CDocumentType%3E(obj)%0A%20%20%20%20%20%20%20%20%7D%0A%20%20% 20%20%7D%0A%0A%7D%0A

0 投票
0 回答
964 浏览

reactjs - 从 JavaScript 库路径导出命名 React 组件的 TypeScript 类型定义

Grommet 是一个没有 TypeScript 类型的 React UI 库。我正在尝试制作一个基本定义文件,允许将每个组件作为命名的导入 React 组件类型导入。原因:方便编辑器可以通过名称找到它们以自动导入,例如

我尝试了各种选择。到目前为止,我最接近的是以下内容,这是错误的,但也许可以更正:

我认为现在发生的是“grommet”模块获取根index.js文件并导入所有组件。Button 工作正常,但我不确定是否可以通过 TypeScript 定义仅导入 Button 而不是所有内容作为摇树的形式。

我想解决的两个问题:

  1. 如何将 Add 作为命名的导入 React 组件导入{ AddIcon }from 'grommet',或者仅'grommet/components/icons/base'在不可能的情况下导入。

  2. 能够从它们的路径导入单个组件,而不是引入所有的索环。最好通过'grommet'作为一个很好的优化,或者例如'grommet/components/Button'

0 投票
4 回答
416 浏览

typescript - IDE 中的 TypeScript 2 'Cannot find a name Promise' 错误

我已经尝试过目标 es6,但它给了我很多编译错误。没有目标 es6 一切都很好,但是 IDE(工作室代码,webstorm)一直告诉我找不到名称 Promise。那是因为 TypeScript 在编辑器中检查。

有人有这个错误吗?很烦人,其实。总是有红色的承诺。

TypeScript 2.0.3,WebStorm 也检查 2.0.3