如何为utility-types之类的内置类型创建别名,我具有与内置类型同名的定义,并且碰巧使用与内置类型同名的类型,例如:>
interface Record { // <-- my definition
toObject() : Record<string, object> // <-- built in definition
}
不起作用
type TsRecord<K,V> = Record<K, V>
如果有导入方法,我找不到引用
import {Record as TsRecord} from ?
答案 0 :(得分:2)
如果您使用的是TypeScript 3.4或更高版本,则可以使用globalThis
namespace访问其名称已被本地声明遮盖的全局类型:
interface Record { // <-- my definition
toObject(): globalThis.Record<string, object> // <-- built in definition
}
好的,希望能有所帮助;祝你好运!
答案 1 :(得分:0)
不确定为什么必须使用名称Record作为自己的定义,但可以将源代码重用为自定义TsRecord类型的record实用工具类型:
type TsRecord<K extends keyof any, T> = {
[P in K]: T;
};
interface Record {
// <-- my definition
toObject(): TsRecord<string, object>;
}
或重命名您自己的定义:
interface TsRecord {
// <-- my definition
toObject(): Record<string, object>;
}