Tag: 打字稿

在TypeScript文件中使用“严格使用”?

我已经看过有关将“use strict”行放在TypeScript代码文件中的post。 我的问题是,为什么呢? 由于TypeScript已经是一种强types语言,“使用严格”的添加是什么?

TypeScript静态类

我想从传统的JS转向TypeScript,因为我喜欢类似C#的语法。 我的问题是,我无法find如何在TypeScript中声明静态类。 在C#中,我经常使用静态类来组织variables和方法,把它们放在一个命名的类中,而不需要安装一个对象。 在香草JS中,我曾经用一个简单的JS对象来做到这一点: var myStaticClass = { property: 10, method: function(){} } 在TypeScript中,我宁愿去使用C-sharpy方法,但似乎静态类在TS中不存在。 什么是适合这个问题的解决scheme?

TypeScript中的“声明类”和“接口”有什么区别?

在TypeScript中,当创build.d.ts源代码声明文件,这是可取的,为什么? declare class Example { public Method(): void; } 要么 interface Example { Method(): void; } 我可以告诉的差异是接口不能有静态方法,所以你必须使用一个类。 两者都不会产生任何JS输出,所以也许没关系?

正确使用TypeScript中的错误

我正在使用typescript进行一个相当大的项目,并且想知道使用错误的标准是什么。 例如,假设我在Java中提出了一个超出边界的exception: throw new IndexOutOfBoundsException(); TypeScript中的等价语句是: throw new Error("Index Out of Bounds"); 还有什么其他的方法可以完成这个? 什么是公认的标准?

在打字稿中书写NPM模块

我正在开发我的第一个NPM模块。 之前我曾经使用过打字稿,而且很多问题是很多模块没有可用的定义文件。 所以我认为在打字稿中写我的模块是一个好主意。 但是,我找不到任何有关如何做到这一点的最佳方法。 我发现这个相关的问题“ 我可以用coffeescript编写npm包吗? ”,其中人们build议只发布javascript文件。 但是与coffeescript文件相反,打字稿文件在打字稿应用程序中使用时可能会非常有用。 我应该在发布NPM模块时包含Typescript文件,还是应该只发布JavaScript文件并将生成的.d.ts文件提供给DefinitelyTyped?

使用TypeScript的开放式函数参数

国际海事组织, TypeScript语言的主要关注之一是支持现有的香草JavaScript代码。 这是我第一眼看到的印象。 看看下面的JavaScript函数是完全有效的: 注意:我不是说我喜欢这种方法。 我只是说这是一个有效的JavaScript代码。 function sum(numbers) { var agregatedNumber = 0; for(var i = 0; i < arguments.length; i++) { agregatedNumber += arguments[i]; } return agregatedNumber; } 所以,我们使用任何数量的参数来使用这个函数: console.log(sum(1, 5, 10, 15, 20)); 但是,当我使用TypeScript Playground进行试用时,会出现编译时错误。 我假设这是一个错误。 假设我们没有兼容性问题。 那么,有没有办法用开放式的论点来写这种types的函数呢? 如在C#中的paramsfunction?

何时在TypeScript / Angular2中使用接口和模型

我最近用TypeScript观看了Angular 2的教程,但不确定何时使用接口以及何时使用模型来保存数据结构。 接口的例子: export interface IProduct { ProductNumber: number; ProductName: string; ProductDescription: string; } 型号示例: export class Product { constructor( public ProductNumber: number, public ProductName: string, public ProductDescription: string ){} } 我想从URL加载JSON数据并绑定到接口/模型。 有时我想要一个单一的数据对象,其他时间我想要保存和对象的数组。 我应该使用哪一个,为什么?

TypeScript私人成员

我正在寻找在TypeScript中实现私有成员,我觉得有点混乱。 Intellisense不允许访问私有成员,但在纯JavaScript中,它就在那里。 这使我认为TS没有正确实现私有成员。 有什么想法吗? class Test{ private member: any = "private member"; } alert(new Test().member);

rxjs / Subject.d.ts错误:Class'Subject <T>'错误地扩展了基类'Observable <T>'

我从https://github.com/gopinav/Angular-2-Tutorials中提取了示例模板代码,并采取以下两个步骤开始 – npm install // worked fine and created node_modules folder with all dependencies npm start失败,下面的错误 – node_modules / rxjs / Subject.d.ts(16,22):错误TS2415:“主题”类错误地扩展了基类“可观察”。 财产“升降机”的types是不相容的。 types'(operator:Operator)=> Observable'不可赋值 键入'(operator:Operator)=> Observable'。 types“Observable”不可分配给“Observable”types。 types“T”不可分配给“R”types。 npm ERR! 代码ELIFECYCLE npm ERR! errno 2 我看到在subject.d.ts电梯宣言如下 – lift<T, R>(operator: Operator<T, R>): Observable<T>; 在Observable.ts中定义如下 – lift<R>(operator: Operator<T, R>): Observable<R> { 注意:1。我是Angular2的新手,想要掌握一些东西。 这个错误可能是由于lift方法的不兼容定义造成的 我通过https://github.com/Microsoft/TypeScript/issues/2073阅读 如果我需要安装一些不同版本的rxjs,那么请告诉如何卸载并安装正确的rxjs。 编辑1:我可能在这里回应有点晚,但即使使用打字机2.3.4或rxjs […]

在TypeScript中是否有“this”的别名?

我试图在TypeScript中编写一个类,该类定义了一个方法,作为jQuery事件的事件处理函数callback。 class Editor { textarea: JQuery; constructor(public id: string) { this.textarea = $(id); this.textarea.focusin(onFocusIn); } onFocusIn(e: JQueryEventObject) { var height = this.textarea.css('height'); // <– This is not good. } } 在onFocusIn事件处理程序中,TypeScript将“this”视为该类的“this”。 但是,jQuery将覆盖此引用,并将其设置为与事件关联的DOM对象。 一种替代方法是在构造函数中定义一个lambda作为事件处理函数,在这种情况下,TypeScript创build一个隐藏_this别名的闭包types。 class Editor { textarea: JQuery; constructor(public id: string) { this.textarea = $(id); this.textarea.focusin((e) => { var height = this.textarea.css('height'); // <– This […]