说我有一个执行TCP的库,响应可能会有所不同,有些响应表示错误。
使用Error对象没有太大意义,因为这很昂贵,但是堆栈跟踪与原始请求也没有任何关系,因为错误将在异步发生。 / p>
所以我能想到的最好的事情是一个简单的字符串,例如:
const makeRequest = function(err, result){
if(err && err.code === 'Request timeout'){
}
if(err && err.code === 'Unauthorized'){
}
};
如何允许用户使用TypeScript输入检查字符串?
答案 0 :(得分:2)
您可以使用字符串文字字符串来提供对错误代码的类型检查(以及对错误代码的良好代码完成支持)。
foreach($code as $v){
$pos = strpos($v, "|");
$first = substr($v,...?
如果每种类型的错误都有额外的信息要提供,您还可以将字符串文字类型与已区分的并集组合在一起:
interface CustomError {
code:'Request timeout' | 'Unauthorized'
}
const makeRequest = function(err : CustomError | null, result : any){
if(err && err.code === 'Not an error'){ // This would be an error
}
if(err && err.code === 'Request timeout'){
}
if(err && err.code === 'Unauthorized'){
}
};