相关疑难解决方法(0)

如何在Typescript中获取变量类型?

我有一个变量.

abc:number|string;
Run Code Online (Sandbox Code Playgroud)

我该如何检查其类型?我想做类似下面的事情:

if (abc.type === "number") {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

typescript

70
推荐指数
6
解决办法
10万
查看次数

有没有办法"提取"TypeScript接口属性的类型?

假设库X的打包文件包含一些接口.

interface I1 {
    x: any;
}

interface I2 {
    y: {
        a: I1,
        b: I1,
        c: I1
    }
    z: any
}
Run Code Online (Sandbox Code Playgroud)

为了使用这个库,我需要传递一个与其完全相同的对象I2.y.我当然可以在源文件中创建相同的界面:

interface MyInterface {
    a: I1,
    b: I1,
    c: I1
}

let myVar: MyInterface;
Run Code Online (Sandbox Code Playgroud)

但是后来我承担了使用库中的那个保持最新的负担,而且它可能非常大并导致大量代码重复.

因此,有没有办法"提取"接口的这个特定属性的类型?类似的东西let myVar: typeof I2.y(不起作用,导致"找不到名字I2"错误).提前致谢.


编辑:在TS Playground中玩了一下后,我注意到以下代码完全符合我的要求:

declare var x: I2;
let y: typeof x.y;
Run Code Online (Sandbox Code Playgroud)

但是,它需要x声明一个冗余变量.我正在寻找一种方法来实现这个没有这个声明.

typing typescript definitelytyped

53
推荐指数
4
解决办法
2万
查看次数

标签 统计

typescript ×2

definitelytyped ×1

typing ×1