gpt4 book ai didi

javascript - FlowType 中可能有不兼容的别名?

转载 作者:行者123 更新时间:2023-11-30 11:54:46 26 4
gpt4 key购买 nike

我正在考虑像 Haskell 这样的东西,在不同类型之间隐式传输是一个编译时错误。

我希望能够做类似的事情:

type Username = string;
type Password = string;

function login(username: Username, password: Password): void {
// do some stuff
}

const username: Username = getUsername();
const password: Password = getPassword();

login(password, username); // ideally, should error

尝试这个似乎工作得很好。我想知道除了类型别名之外我是否还需要其他东西。我认为如果我将它包裹在一个对象中是可能的,但我不知道。

这样的事情可能吗?

最佳答案

您可以使用类来模拟它:

declare class Password {}

function passwordFromString(str: string): Password {
return (str: any);
}

function passwordToString(pass: Password): string {
return (pass: any);
}

function checkPassword(pass: Password): boolean {
if (passwordToString(pass) === 'foo') {
return true;
}

return false;
}

关于javascript - FlowType 中可能有不兼容的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339108/

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