相关疑难解决方法(0)

如何将 Typescript 类型定义为字符串字典,但具有一个数字“id”属性

现有的 JavaScript 代码有“记录”,其中 id 是数字,其他属性是字符串。尝试定义这种类型:

type t = {
    id: number;
    [key:string]: string
}
Run Code Online (Sandbox Code Playgroud)

给出错误 2411 id 类型编号无法分配给字符串

typescript

16
推荐指数
1
解决办法
1278
查看次数

Typescript接口,强制执行额外属性的类型

假设我要创建一个接口来描述这种类型的对象:

let myObj= {
    "count": 3,
    "key1": "foo",
    "key2": "bar",
    "key3": "baz"
};
Run Code Online (Sandbox Code Playgroud)

这些对象始终具有类型编号的属性计数,其余属性为字符串

如果我使用这样的索引签名定义接口:

interface MyObect {
    count: number;
    [key: string]: string;
}
Run Code Online (Sandbox Code Playgroud)

我收到了编译器错误:

[ts] Property 'count' of type 'number' is not assignable to string index type 'string'.
Run Code Online (Sandbox Code Playgroud)

所以我必须这样定义它:

interface MyObect {
    count: number;
    [key: string]: any;
}
Run Code Online (Sandbox Code Playgroud)

但是这个定义并不那么精确。

有没有一种方法可以强制执行额外属性的类型?

types interface typescript

3
推荐指数
2
解决办法
716
查看次数

标签 统计

typescript ×2

interface ×1

types ×1