我有很多函数接受ID作为参数(目前类型为string
)。
我想用类型ID
替换它,它仍然只是一个字符串,但允许我利用静态检查来确保我正确传递参数。
答案 0 :(得分:0)
不确定为什么要使ID等效于字符串。
在任何情况下,您要么都想使用字符串-从打字稿的角度来看,它们是不同的,因为您只是在重用相同的确切类型。做类似的事情:
type ID = string
将无济于事,因为字符串仍然有效。即使这样,您也不能使用有效的“ typeof”,因为:
type ID = string;
class WorkWithIDs {
public alertID(data: ID) {
alert(typeof (data));
}
}
let testWorkWithIDs = new WorkWithIDs();
let actualID: ID;
testWorkWithIDs.alertID("dsfsdf");
testWorkWithIDs.alertID(actualID);
警报: -字符串 -未定义
用您自己的话说,ID现在是一个字符串。为什么不使用名为“ ID”的常规类,您可以扩展所需的所有类并且已经可以进行类型检查了?
据我所知,目前没有任何方法可以使用Typescript提供的工具来做您想做的事情,即使另一种类型的类型确实强制该基本类型不能用作输入。