gpt4 book ai didi

javascript - 将 @types 中的类型分配给本地代码?

转载 作者:行者123 更新时间:2023-12-03 01:34:47 28 4
gpt4 key购买 nike

我有一个委托(delegate)给 validatorjs 的方法,如下所示:

  /**
* Checks if the string is a mobile phone number (locale is one of ['zh-CN', 'zh-TW', 'en-ZA', 'en-AU', 'en-HK',
* 'pt-PT', 'fr-FR', 'el-GR', 'en-GB', 'en-US', 'en-ZM', 'ru-RU', 'nb-NO', 'nn-NO', 'vi-VN', 'en-NZ']).
* If given value is not a string, then it returns false.
*/
export function isMobilePhone(value: string, locale: string): boolean {
return (
typeof value === "string" && vjsIsMobilePhone(value, locale)
);
}

VSCode 为 locale 参数呈现以下错误:

[ts] Argument of type 'string' is not assignable to parameter of type 'MobilePhoneLocale'. (parameter) locale: string

MobilePhoneLocale 类型来自 @types/validator。如果我将 MobilePhoneLocale 分配给 locale (而不是使用字符串),该方法如下所示:

    /**
* Checks if the string is a mobile phone number (locale is one of ['zh-CN', 'zh-TW', 'en-ZA', 'en-AU', 'en-HK',
* 'pt-PT', 'fr-FR', 'el-GR', 'en-GB', 'en-US', 'en-ZM', 'ru-RU', 'nb-NO', 'nn-NO', 'vi-VN', 'en-NZ']).
* If given value is not a string, then it returns false.
*/
export function isMobilePhone(value: string, locale: MobilePhoneLocale): boolean {
return (
typeof value === "string" && vjsIsMobilePhone(value, locale)
);
}

但是现在 ts 呈现此错误:

[ts] Cannot find name 'MobilePhoneLocale

上面的函数应该如何实现locale的类型?

还创建了一个@types/validator github issue为此。

最佳答案

MobilePhoneLocaleValidatorJS 命名空间下声明,导入 validator 后即可访问该命名空间。您将其称为 ValidatorJS.MobilePhoneLocale。这是使用 ts-node 的示例:

> import validator = require("validator")
{}
> function foo(l: ValidatorJS.MobilePhoneLocale): ValidatorJS.MobilePhoneLocale { return l; }
undefined
> foo("en-US")
'en-US'

关于javascript - 将 @types 中的类型分配给本地代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51120494/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com