我正在尝试覆盖现有文件.我首先检查文件是否存在使用:
fs.existsSync(path)
Run Code Online (Sandbox Code Playgroud)
如果文件没有退出我正在创建和编写使用:
fs.writeFileSync(path,string)
Run Code Online (Sandbox Code Playgroud)
问题是当文件已经存在并且我想重写其所有内容时.有没有一个单行解决方案,到目前为止我搜索并找到了使用fs.truncate&fs.write的解决方案,但有一个一击的解决方案吗?
通常在打字稿项目中,您有一个 tsconfig.json 文件,该文件与 tsc npm 命令一起用于将项目编译为 javascript。
然而,使用 webpack 编译项目,而没有安装 tsc。然而 tsconfig.json 仍然存在于项目根目录中。
我感兴趣的问题是,webpack 如何使用 tsconfig.file?它是否在引擎盖下使用 tsc 命令?在 webpack 项目中是否需要 tsconfig.json 文件?
我试图找出使用 es6 获取两个对象之间的交集对象的最佳方法是什么。我的意思是:
a = {a:'a',b:'b',c:'c', d:'d'};
b = {a:'a',b: '1', c:'c', d:'2', f'!!!'}
// result I want:
c = getDifference(a,b)
//c is now: {b:'1', d:'2'}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以使用 es6 来做到这一点,或者我是否需要使用 for(in) 和 Object.keys() 迭代 a 对象并进行比较,将交集分配给 c?
(a,b) => {
const c = {};
for(const _key in Object.keys(a)){
if(b[_key] && b[_key] !== a[_key]){
c[_key] = b[_key];
}
}
return c;
}
Run Code Online (Sandbox Code Playgroud)
我知道 loadash/underscore 有这些类型的辅助函数...但是尝试看看 es6 是否有任何新的短语法,如果没有,使用 vanilla js 执行此操作的最短方法是什么。
目前我使用的商店是功能模块的扁平结构,即:
{
feature_A: {
A:'A',
B:'B'
},
feature_B:{
C:'C',
D:'D'
}
}
Run Code Online (Sandbox Code Playgroud)
但我想做的是:
{
feature_A: {
A:'A',
B:'B',
feature_B:{
C:'C',
D:'D'
}
}
}
Run Code Online (Sandbox Code Playgroud)
也许类似:App.Module
StoreModule.forFeature('feature_A', fromFeature_A.feature_A_Reducers)
StoreModule.forFeature('feature_A.feature_B', fromFeature_B.feature_B_Reducers)
Run Code Online (Sandbox Code Playgroud)
在网上寻找这个问题的答案时,除了建议保持功能模块的扁平结构之外,并没有真正找到真正的答案。
我遇到了一个自执行函数,它在声明包含var的条件下执行,如果它不存在则传递一个对象.
例:
var myFunc = (function(myFunc){}(myFunc || {}));
Run Code Online (Sandbox Code Playgroud)
为什么有一个"或"条件运算符传递一个对象?
javascript ×3
node.js ×2
angular ×1
angular7 ×1
ecmascript-6 ×1
ngrx ×1
ngrx-effects ×1
ngrx-store ×1
object ×1
oop ×1
parentheses ×1
typescript ×1
webpack ×1