Sass map.get() 不起作用。 map-get() 可以。是什么赋予了?

Sass map.get() doesn't work. map-get() does. What gives?

问题:map.get() 不起作用。 map-get() 确实有效。

我设置了颜色值映射并创建了一个简单的函数来检索它们。

在进行检索时,我遵循了 Sass documentation,它指出您可以使用 map.get() 函数检索地图值。使用这个或任何其他 map.function 会导致 Error: There is no module with the namespace "map"..

查看地图模块时,我注意到了另一种语法 map-get(),它确实有效。

什么给?我是否遗漏了一些东西,比如导入地图模块,以便我可以以那种形式使用它?

查看下面我的代码:

// Using npm dart `sass 1.26.11`.

$colors: ('primary': black, 'secondary': white);

// Doesn't work    
@function color($color) {
  @return map.get($colors, $color);
}

// Does work
@function color($color) {
  @return map-get($colors, $color);
}

问题:我需要更改什么才能使 map.get() 语法正常工作?

我遇到了与 OP 类似的问题(使用 dart-sass v1.25.0),只有 map-get 有效,map.get 无效。

文档对此似乎不是很清楚,但是 Github 上的 (Sass Module System: Draft 6) 文档解释得更好。

似乎 Sass is moving on 使用 @use 支持 @import 以更好地与本机 CSS 兼容,并且可以访问 map.get 您现在必须使用 @use 关键字显式导入 map module

因此使用 OP 的示例,map.get 应该有效:

@use "sass:map";

$colors: ('primary': black, 'secondary': white);

@function color($color) {
  @return map.get($colors, $color);
}