我有一個mixin是這樣定義的:
@mixin el-light-theme($default: false, $typography:null) { ... }
這個mixin委托給一個函數,定義如下:
@function el-create-theme(
$primary,
$accent,
$warn: mat.define-palette(mat.$orange-palette),
$success: mat.define-palette(mat.$green-palette),
$danger: mat.define-palette(mat.$red-palette),
$info: mat.define-palette(mat.$teal-palette),
$create-light-theme: true,
$typography: null
) { ... }
似乎編譯器不喜歡結尾的$typography: null參數。
構建產生以下錯誤:
HookWebpackError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
SassError: Positional arguments must come before keyword arguments.
?
18 │ $typography
我對它的解釋是,SASS認為$typography:null是一個“位置”參數,而不是一個關鍵字參數,因為它被賦予了一個缺省值null,而且由于這種情況,它必須在其他沒有null值的“關鍵字”參數之前進行初始化。
我也試過了,它編譯沒有錯誤,所以只是想確認我的解釋是否正確?