繁体   English   中英

内置类型的打字稿别名

[英]Typescript alias for builtin type

我如何为内置类型创建别名,例如来自实用程序类型,我有与内置类型同名的定义,并且碰巧使用来自内置类型的同名类型,例如:

interface Record { // <-- my definition

   toObject() : Record<string, object> // <-- built in definition
}

不起作用

type TsRecord<K,V> = Record<K, V>

如果有导入方法,我找不到参考

import {Record as TsRecord} from ?

如果您使用的是 TypeScript 3.4 或更高版本,则可以使用globalThis命名空间来访问名称已被局部声明遮蔽的全局类型:

interface Record { // <-- my definition
  toObject(): globalThis.Record<string, object> // <-- built in definition
}

好的,希望有帮助; 祝你好运!

Playground 链接到代码

不知道为什么您必须使用名称 Record 来定义您自己,但您可以为自定义 TsRecord 类型重用记录实用程序类型的源:

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>; 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM