为什么打字稿不允许在必需参数之前使用可选参数?

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 开始。并且没有足够的用例来证明复杂性。