js文件中的代码是否在导入期间运行?如果是,那么一次还是每次?例如
// a.js
console.log("A");
const a = "a";
export default a;
// b.js
import a from "./a"; // => console logs?
// c.js
import a from "./a"; // => console logs again?
Run Code Online (Sandbox Code Playgroud) 我喜欢在无头镀铬上运行我的业力单元测试.使用karma-chrome-launcher并将浏览器设置为"ChromeHeadless"可在我的机器上运行.但是在CI服务器上,它失败并显示消息"平台上没有适用于ChromeHeadless浏览器的二进制文件".无法在CI计算机上安装chrome.还有另一种加载chrome二进制文件的方法吗?例如,google puppeteer模块似乎在运行时加载.来自文档:"Puppeteer下载并使用特定版本的Chromium".我怎样才能实现同样的目标?
continuous-integration google-chrome karma-runner google-chrome-headless
我有一个类,其中包含一些属性/方法,这些属性/方法返回最初通过构造函数传递的值:
class Base {
constructor(arg) {
this.options = arg.options;
}
}
Run Code Online (Sandbox Code Playgroud)
人们建议这个类使用泛型作为打字稿的等价物:
class Base<T extends {options: any}> {
options: T["options"];
constructor(arg: T) {
this.options = arg.options;
}
}
// works fine with instantiation
const inst = new Base({options: {foo: 123}});
inst.options.foo++; // ok
inst.options.bar; // TS Error
Run Code Online (Sandbox Code Playgroud)
现在我有一个子类,它调用超类的构造函数并传递这些选项:
class Sub extends Base { // TS Error
constructor() {
super({options: {foo: 123}});
this.options.foo++; // TS Error
}
}
Run Code Online (Sandbox Code Playgroud)
Typescript 编译器对此并不满意,并希望通过传递类型来扩展基类。但后来我在超级调用和扩展符号中获得了两次信息。解决我的问题的正确 ts 语法是什么?
(打字稿游乐场中的代码)
我的标记是让我们说:
<div class="container marker">
<div class="parent">
<div class="child">
content
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我的 scss 将是
.container {
.parent {
.child {
.marker & {
background: red;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
只要我将子样式与标记类嵌套在父样式中,与号 (&) 规则就不会起作用。但如果我写:
.parent {
.child {
.marker & {
background: red;
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好。为什么?我错过了什么?
CodePen 中的示例:http ://codepen.io/anon/pen/GgRvOV
当下拉菜单打开或关闭时,如何设置不同的样式?是否有任何伪选择器或技巧?当然没有javascript。
<select>
<option> op1 </option>
<option> op2 </option>
</select>
Run Code Online (Sandbox Code Playgroud)
并且 :hover 并不真正适合我的需要,因为当下拉菜单展开时,我可以将光标移开。它仍然是开放的,但 :hover 样式不再适用。
假设接口有一些已知的属性及其类型,并且可以有其他具有未知键和一些其他类型的属性,例如:
interface Foo {
length: number;
[key: string]: string;
}
const foo : Foo = {
length: 1,
txt: "TXT",
};
Run Code Online (Sandbox Code Playgroud)
TS错误:
'number' 类型的属性 'length' 不能分配给字符串索引类型 'string'。
应该如何键入这样的接口?
我有一个像这样的代码,在编码中我将字母转换为字节,然后用一元按位补码翻转它们〜最后将它转换为字符串.
之后,我想用类似的方法解密它.问题是,对于两个相似的输入字符串(但不相同),我得到具有相同哈希码的相同编码字符串.
String(bytes)方法是否会丢失信息,因为字节是负数,或者我可以以某种方式检索它而不更改我的加密部分?
感谢名单
static String encrypt(String s){
byte[] bytes=s.getBytes();
byte[] enc=new byte[bytes.length];
for (int i=0;i<bytes.length;i++){
enc[i]=(byte) ~bytes[i];
}
return new String(enc);
}
static String decrypt(String s){
...
Run Code Online (Sandbox Code Playgroud) 在 iOS 中的 safari 中,当元素或其祖先具有事件侦听器时,mousemove
其click
上的事件侦听器将被忽略。
<div id="el"></div>
document.getElementById("el").addEventListener("mousemove", _e => console.log("mousemove"));
document.getElementById("el").addEventListener("click", _e => console.log("click"));
Run Code Online (Sandbox Code Playgroud)
在 ios 上,点击永远不会被记录,在 android (chrome) 或桌面浏览器上,两者都会记录。
stackoverflow 上有几十个关于 ios 点击错误的问题,但我找不到任何关于这个组合的信息。
我在每个类别中使用了几个聚合物的铁图标,并且不希望导入整套.是否有可能(或硫化工具/插件)仅导入我需要的?并有一个较小的HTML文件服务?
css ×2
javascript ×2
typescript ×2
byte ×1
ecmascript-6 ×1
java ×1
karma-runner ×1
mouseevent ×1
polymer ×1
safari ×1
sass ×1
string ×1