Questions tagged «typescript»

TypeScript是由Microsoft创建的JavaScript的静态类型超集,它添加了可选类型,类,接口,枚举,泛型,异步/等待和许多其他功能,并编译为纯JavaScript。该标签用于特定于TypeScript的问题。它不用于一般的JavaScript问题。

30
在Angular中,如何确定活动路线?
注意: 这里有很多不同的答案,大多数答案一次或一次都有效。事实是,随着Angular团队更改了Router,有效的方法已经改变了很多次。最终将成为 Angular中的路由器的Router 3.0版本打破了许多这些解决方案,但提供了一个非常简单的解决方案。从RC.3开始,首选解决方案是使用此答案中[routerLinkActive]所示的方法。 在Angular应用程序中(我撰写本文时为2.0.0-beta.0版本中的当前版本),如何确定当前活动的路由是什么? 我正在开发一个使用Bootstrap 4的应用程序,并且需要一种方法来在<router-output>标签中显示其关联组件时将导航链接/按钮标记为活动状态。 我意识到,当单击其中一个按钮时,我可以自己维护状态,但这不会涵盖将多条路径放入同一条路线的情况(例如主导航菜单以及主组件中的本地菜单) )。 任何建议或链接将不胜感激。谢谢。

17
如何在TypeScript中将字符串转换为枚举?
我在TypeScript中定义了以下枚举: enum Color{ Red, Green } 现在在我的函数中,我将颜色作为字符串接收。我尝试了以下代码: var green= "Green"; var color : Color = <Color>green; // Error: can't convert string to enum 我如何将该值转换为枚举?
311 typescript 

13
在启用noImplicitAny标志的打字稿中编译时,如何防止出现“对象类型的索引签名隐式具有'any'类型”错误?
我总是用--noImplicitAny标志来编译Typescript。这很有意义,因为我希望我的类型检查尽可能严格。 我的问题是,使用以下代码,我得到了错误Index signature of object type implicitly has an 'any' type: interface ISomeObject { firstKey: string; secondKey: string; thirdKey: string; } let someObject: ISomeObject = { firstKey: 'firstValue', secondKey: 'secondValue', thirdKey: 'thirdValue' }; let key: string = 'secondKey'; let secondValue: string = someObject[key]; 需要注意的重要一点是,该想法是key变量来自应用程序中的其他位置,并且可以是对象中的任何键。 我尝试通过以下方式显式转换类型: let secondValue: string = <string>someObject[key]; …
309 typescript 

14
找不到模块“模块名称”的声明文件。'/path/to/module-name.js'隐式具有'any'类型
我阅读了TypeScript 模块解析的工作原理。 我有以下存储库:@ ts-stack / di。编译后的目录结构如下: ├── dist │ ├── annotations.d.ts │ ├── annotations.js │ ├── index.d.ts │ ├── index.js │ ├── injector.d.ts │ ├── injector.js │ ├── profiler.d.ts │ ├── profiler.js │ ├── providers.d.ts │ ├── providers.js │ ├── util.d.ts │ └── util.js ├── LICENSE ├── package.json ├── README.md …


23
Angular 2滚动到路线更改顶部
在我的Angular 2应用程序中,当我向下滚动页面并单击页面底部的链接时,它确实会更改路线并带我进入下一页,但不会滚动到页面顶部。结果,如果第一页很长而第二页的内容很少,则给人的印象是第二页缺少内容。由于仅当用户滚动到页面顶部时内容才可见。 我可以将窗口滚动到该组件的ngInit中的页面顶部,但是,有没有更好的解决方案可以自动处理应用程序中的所有路由?

13
使用Typescript进行接口类型检查
这个问题是使用TypeScript进行类类型检查的直接类比 我需要在运行时找出类型为any的变量是否实现了接口。这是我的代码: interface A{ member:string; } var a:any={member:"foobar"}; if(a instanceof A) alert(a.member); 如果在打字稿游乐场输入此代码,则最后一行将被标记为错误,“名称A在当前作用域中不存在”。但这不是事实,该名称确实存在于当前作用域中。我什至可以将变量声明更改为var a:A={member:"foobar"};无编辑者的抱怨。浏览完网络并在SO上找到另一个问题后,我将接口更改为一个类,但是后来我无法使用对象文字来创建实例。 我想知道类型A如何会消失,但是查看生成的javascript可以解释问题: var a = { member: "foobar" }; if(a instanceof A) { alert(a.member); } 没有将A表示为接口,因此无法进行运行时类型检查。 我知道javascript作为一种动态语言没有接口的概念。有什么方法可以对接口进行类型检查吗? 打字稿操场的自动补全表明,打字稿甚至提供了一种方法implements。如何使用?

6
强制Typescript对象的索引成员的类型?
我想在Typescript对象中存储string-> string的映射,并强制所有键都映射到字符串。例如: var stuff = {}; stuff["a"] = "foo"; // okay stuff["b"] = "bar"; // okay stuff["c"] = false; // ERROR! bool != string 有没有办法强制我值必须是字符串(或其他类型。)?
289 typescript 

2
我应该使用打字稿吗?或者我可以只使用ES6?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 改善这个问题 我的日常工作是使用AngularJS进行客户开发。我们正在评估是否要使用TypeScript。我对Typescript进行了一些研究,几乎我需要的每个JavaScript包都必须具有定义类型文件。我发现这不是很方便,特别是如果我想尝试一些新的东西,而他们没有定义的话。真令人沮丧。(如果我想使用打字稿1.5 beta,即使当前的jQuery定义也给我带来了一些问题)。我开始研究ES6,它看起来与TypeScript类似。我应该只使用ES6吗?另外,我听说angular 2将完全支持TypeScript,这是我应该坚持使用它的原因之一吗?

15
检查表达式___后已更改
为什么在这个简单的组件普拉克 @Component({ selector: 'my-app', template: `<div>I'm {{message}} </div>`, }) export class App { message:string = 'loading :('; ngAfterViewInit() { this.updateMessage(); } updateMessage(){ this.message = 'all done loading :)' } } 抛出: 例外:表达式'我在App @ 0:5中是{{message}}”已被检查。先前的值:[我在App @ 0:5的{{message}}}中的“我正在加载:('。当前值:'我已经完成加载:)” 当我正在做的所有事情都是在启动视图时更新一个简单的绑定吗?

13
例外:无法绑定到“ ngFor”,因为它不是已知的本机属性
我究竟做错了什么? import {bootstrap, Component} from 'angular2/angular2' @Component({ selector: 'conf-talks', template: `<div *ngFor="talk of talks"> {{talk.title}} by {{talk.speaker}} <p>{{talk.description}} </div>` }) class ConfTalks { talks = [ {title: 't1', speaker: 'Brian', description: 'talk 1'}, {title: 't2', speaker: 'Julie', description: 'talk 2'}]; } @Component({ selector: 'my-app', directives: [ConfTalks], template: '<conf-talks></conf-talks>' }) class …

7
如何拒绝异步/等待语法?
如何拒绝异步/等待功能返回的承诺? 例如本来 foo(id: string): Promise<A> { return new Promise((resolve, reject) => { someAsyncPromise().then((value)=>resolve(200)).catch((err)=>reject(400)) }); } 转换为异步/等待 async foo(id: string): Promise<A> { try{ await someAsyncPromise(); return 200; } catch(error) {//here goes if someAsyncPromise() rejected} return 400; //this will result in a resolved promise. }); } 那么,在这种情况下,我如何才能正确拒绝这一承诺?


22
如何将过滤器应用于* ngFor?
显然,Angular 2将使用管道代替Angular1中的ng-for过滤器来过滤结果,尽管实现起来似乎还很模糊,没有明确的文档。 即我可以从以下角度看待我要实现的目标 <div *ng-for="#item of itemsList" *ng-if="conditon(item)"></div> 如何使用管道来实现?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.