我一直很难让Visual 2012的TypeScript工作。有人知道它是否只安装在VS2012的完整版本上吗?(我有VS 2012 Express for Web和VS 2012 Express for Desktop)。
我尝试了所有的建议,我可以在这个网站上找到,但仍然没有运气。VS和TypeScript都安装正确,但是我看不到TypeScript项目或VS2012Express for Web中任何地方的新项目。
我有以下功能,它与类似,但适合我自己的需要:
/**
* Checks if a value is empty.
* It will return true for the following cases:
* null, undefined, empty string, empty Set, empty Map, an object without properties.
* @param input Can be any value.
* @example
*
* isEmpty([1, 2, 3]); //=> false
* isEmpty([])
假设我们有这样的代码:
class MyEvent {
timestamp:number;
}
class AEvent extends MyEvent{
x:number;
y:number;
}
class BEvent extends MyEvent{
key:string;
}
var fn:(event:MyEvent)=>void;
function AE(event:AEvent){
let x = event.x; //Ok, but BEvent hasn't 'x' property.
}
fn
我写了这段代码
interface Foo {
abcdef: number;
}
let x: Foo | string;
if (x instanceof Foo) {
// ...
}
但是TypeScript给了我这个错误:
'Foo' only refers to a type, but is being used as a value here.
为什么会发生这种情况?我认为instanceof可以检查我的值是否具有给定的类型,但是TypeScript似乎不喜欢这个类型。
"typescript": "2.7.2"
这段代码是如何/为什么在没有IDE错误或-aot编译错误的情况下运行的?
private func1() {
const b: B = new B();
b.name = 'jack';
this.func2(b);
}
private func2(a: A) {
console.log(a.name); //prints jack
}
-
export class A {
public name: string;
}
export class B {
TypeScript中this的推理策略让我摸不着头脑,例如:
class A {
s: String
constructor() {
this.s = "this is fine"
}
f() {
console.log(this.s)
}
}
let a = new A
a.f() // -> this is fine
let f1 = (new A).f
f1() // -> undefined
如果您将代码放入TypeScript 中,并检查f()中的this类型,您可以看到它被推
我已经用TypeScript开发了几个月,现在正在研究是否值得为我的开发迁移到。我遇到的问题之一是在使用外部模块和注入服务时的重复。例如,我有以下(简化)代码:
///<reference path="../../../../typings/tsd.d.ts" />
// imports for strong typing
import audioModel = require('app/plugins/audio/audio.model');
export class AudioController {
public model: a
我对Typescript中的Node开发有一个担忧。我一直在与一位精通node和javascript的node开发人员合作,但现在我们决定从javascript转向typescript,这是一个很好的决定。
问题是,因为我们已经开始用typescript编写代码,但是我们面临着选择是在typescript中使用模块化方式还是使用类的冲突。
选项1:
ab.ts
export function a () {
will write whole code here for that
}
选项2:
ab.ts
export class Ab {
constructor(){
}
public a
当我们输入断言时,如果Typescript知道我们不可能是对的,它就会报错。例如 type Counter = (start: number) => number;
let counterProblemDetected = ((start: number) => "yo") as Counter; 但是当非空检查被启用时,它不会像我们设置了类型时那样抱怨没有从函数返回: // 'strictNullChecks' is on
// Typescript does not complain
let counterProblemNotDetected
我想创建一个函数,如下所示: private isType<G>(type: unknown, property: string): type is { [property]: G } {
if(blah) return true;
return false;
} 在那里它的名字是这样的 if (this.isType<User[]>(result, 'users') {
result.users = [UserMock()]
} 但是,在执行此操作时,我在isType中的{ [property]: G }处收到错误 A c
我有一个具有以下结构的JavaScript对象:
{
"_index": 1,
"foo": { ... },
"bar": { ... },
"baz": { ... },
}
也就是说,对象总是有一个带有数字值的属性_index,然后所有其他键(因为它被用作映射而没有定义)都有另一个特定对象的值。
我在TypeScript中尝试了以下类型
type Properties = {
_index: number
}
type Fields = {
// its not important what Me