为什么打字稿不允许在必需参数之前使用可选参数?
Why does typescript not allow optional parameters before required parameters?
我正在为我的项目使用打字稿,并在编写定义文件时注意到 openui5 偶尔会在必需参数之前使用可选参数。例如
// Defines a Javascript module with its name, its dependencies and a module value or factory.
define(sModuleName?, aDependencies?, vFactory, bExport?);
Typescript, Flow Type and the Closure Compiler 都需要这种形式的参数列表:
ParameterList:
RequiredParameterList
OptionalParameterList
RestParameter
RequiredParameterList , OptionalParameterList
RequiredParameterList , RestParameter
OptionalParameterList , RestParameter
RequiredParameterList , OptionalParameterList , RestParameter
但是,这个构造不能被看作等同于三个重载函数,即
define(vFactory, bExport?);
define(aDependencies, vFactory, bExport?);
define(sModuleName, aDependencies, vFactory, bExport?);
However, could this construct not be seen as equivalent to three overloaded functions
可以。但是 所有语言功能都从 -100 开始。并且没有足够的用例来证明复杂性。
我正在为我的项目使用打字稿,并在编写定义文件时注意到 openui5 偶尔会在必需参数之前使用可选参数。例如
// Defines a Javascript module with its name, its dependencies and a module value or factory.
define(sModuleName?, aDependencies?, vFactory, bExport?);
Typescript, Flow Type and the Closure Compiler 都需要这种形式的参数列表:
ParameterList:
RequiredParameterList
OptionalParameterList
RestParameter
RequiredParameterList , OptionalParameterList
RequiredParameterList , RestParameter
OptionalParameterList , RestParameter
RequiredParameterList , OptionalParameterList , RestParameter
但是,这个构造不能被看作等同于三个重载函数,即
define(vFactory, bExport?);
define(aDependencies, vFactory, bExport?);
define(sModuleName, aDependencies, vFactory, bExport?);
However, could this construct not be seen as equivalent to three overloaded functions
可以。但是 所有语言功能都从 -100 开始。并且没有足够的用例来证明复杂性。