JS `import assertions` (提案):导入 JSON/CSS 模块的类型声明

各位听众,欢迎来到今天的“JS八卦大会”,我是你们的老朋友,Bug终结者。今天我们要聊点刺激的,关于JS里一个还在提案阶段,但已经开始崭露头角的家伙——import assertions,主要是针对JSON和CSS模块的类型声明。准备好了吗?系好安全带,我们要开始飙车了! 开场白:JS模块化的爱恨情仇 话说JS的模块化,那真是一部血泪史。从最初的script标签乱炖,到CommonJS的横空出世,再到AMD的百家争鸣,最后到ES Modules一统江湖,JS为了摆脱全局变量污染,模块依赖混乱的局面,可没少掉头发。 ES Modules(ESM)凭借着静态分析、按需加载等优势,成为了现代JS开发的首选。但是,问题来了,ESM虽然强大,但对于非JS文件,比如JSON、CSS等,它的支持就显得有点力不从心了。 问题所在:JSON和CSS的类型困境 想象一下,你用ESM导入一个JSON文件: import data from ‘./data.json’; console.log(data.name); // 报错? 还是undefined? 这段代码在没有类型声明的情况下,你是无法确定data …