问题标签 [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 回答
651 浏览

typescript - 类型别名的范围是什么?

打字稿类型别名的范围是什么?我有这个别名,我想我可能想以某种方式在全球范围内声明它:

0 投票
1 回答
601 浏览

angular - Angular2 Typescript如何从组件构造函数中重构代码

Angular 2 指南中有这个示例,其中包含一个构造函数

来自https://angular.io/docs/ts/latest/guide/displaying-data.html#Create-an-array(检索 2015-10-30)

考虑这是一个简单的例子,但在现实生活中,我的构造函数通常会变得越来越大。另外我有时需要在几个地方使用相同的逻辑,而不仅仅是在构建时间上。

我的第一反应是创建一个单独的函数并在实例上调用它。但是 Typescript 不允许这样做,因为在构造函数运行时不会创建实例。

我的问题是:如何从构造函数中提取代码行并将其拉出到单独的函数中?

0 投票
1 回答
1917 浏览

typescript - 在打字稿中创建一个通用工厂

我正在为我当前的项目编写一个小型模型系统。我希望库的使用者能够向 API 提供他们自己的模型定义。API 应该在查询服务器时输出用户模型的实例。

我不知道如何在这里完成模式。让工厂吐出正确的实例非常容易,但是像clone/refresh之类的东西BaseModel也需要 return Model,而不是any.

10/2 更新

在尝试 typescript@next(此时技术上是 1.8-dev)之后,我似乎能够解决模型可以引用自身(this)并且类型系统可以遵循它的问题。但是,我无法

我在这里的打字稿跟踪器上打开了一个问题: https ://github.com/Microsoft/TypeScript/issues/5493

12/1 更新(未解决)

根据打字稿问题跟踪器,这是不可能的。“多态this”功能仅适用于排除构造函数的非静态类成员。

0 投票
2 回答
544 浏览

casting - 如何实现一个既可调用又具有 TypeScript 属性的接口?

给定接口

我如何编写实现?

不起作用,因为它会引发错误,“类型'() => void 上不存在属性'bar'”。但是,如果我声明的类型fooFooWithBar

```` var foo: FooWithBar = function () {

````

我收到另一个错误,“类型'() => void'不可分配给类型'FooWithBar'。类型'() => void'中缺少属性'bar'”。

我该如何解决这个catch-22?

0 投票
1 回答
11120 浏览

reactjs - How to properly import React JSX from separate file in Typescript 1.6

I have the following app.tsx file working fine loading an App element from a React.Component and a child Worklist element from another React.Component (both classes defined in the same app.tsx file). This is running in Visual Studio with Typescript 1.6 installed (ECMAScript version: ECMAScript 5, JSX compilation: React, Module System: CommonJS).

However, I would like to split these two components into separate files. However, when I uncomment the import of WorkList and remove the class definition for the WorkList component from app.tsx - it fails with an error:

Error TS2604 JSX element type 'WorkList' does not have any construct or call signatures.

Here is the working app.tsx and the desired worklist.tsx.

What is the proper way to import a child JSX with Typescript 1.6?

Here is the working code with the correct answer applied:

0 投票
1 回答
215 浏览

typescript - TypeScript 类型保护 Oddity

我在循环内的三元运算符中使用 TypeScript 类型保护,并看到我不理解的行为。

我的界面

我的类型后卫

一般使用示例

在我的 for .. of 循环中,我使用我的类型保护将我当前的项目或 null 分配给 IOtherNamed 的变量。

这不起作用

这确实

我的问题

  1. 这是设计使其中一个有效而另一个无效吗?
  2. 如果按照设计,这里的细微差别决定了它何时起作用?特别是为什么将我的对象分配给一个新变量(没有任何类型更改)会消除编译器错误?
0 投票
2 回答
4399 浏览

types - 在 TypeScript 中将对象属性复制到另一个对象,导致错误 TS2339

我使用一个extend()函数来扩展一个对象:

并且有一个类Observer()有一个方法Update()和一个check类型的对象HTMLInputElement

我使用extend()函数来扩展checkbox,所以它会有方法Update()

然后导致错误TS2339:Property 'Update' does not exist on type 'HTMLInputElement' 在此处输入图像描述

如何修复此错误?改变extend()功能?

0 投票
1 回答
248 浏览

angularjs - 如何在 Protractor 中使用 TypeScript 接口

在我的项目中,我有一个 TypeScript 接口,用于从 api 转换响应:

这很好用,让我可以输入从 api 返回的数据。

但是我想在量角器中做类似的事情,因为我需要检索一个静态 json 文件并将其转换为相同的接口,以便我可以在运行期望之前对其上的数据进行操作。

问题是,接口所在的模块在量角器测试中不可用,所以我不能使用它。

我试图将它复制到量角器测试中的目录并将其放置在量角器测试所在的 app.test 模块中,但它在我正在处理的量角器类中仍然不可见。

有没有办法解决?

0 投票
1 回答
587 浏览

typescript - 在构造函数中初始化的 TypeScript 空数组在运行时未定义

我注意到,只要有以下代码:

MyArray 属性在运行时未定义。如果我用某个值初始化数组,情况就不是这样了。为什么会这样,我该如何避免呢?

更新

实际上,这似乎在这里工作。我会尝试更准确地隔离问题,我偶尔会被打败。可能是关闭问题。

0 投票
1 回答
127 浏览

angularjs - 在模块内声明的变量 not 在编译后未定义

我已经声明了以下文件

应用程序.types.ts

应用程序.ts

代码编译为 Js 没有错误,但变量 Module 在文件中未定义。

我也尝试使用 App.Module 但变量仍然未定义

更新:我检查了 app.types.js 是否插入到 app.js 之前的 html 中。那里生成的 Js 文件似乎不正确。