小编Li3*_*357的帖子

Typescript指南提供"重复功能实现"警告

我开始使用TypeScript,现在我在5分钟的指南中关注TypeScript.当我将鼠标悬停在greeter函数名称上时,我在Visual Studio Code中收到一个奇怪的警告,如下图所示.警报是:

[ts]重复的功能实现.

function greeter(person:Person):string(+1 overload)

重复的功能实现警告.

但是我的单个文件中没有这个独特功能的其他实现!当我运行tsc greeter.ts所有工作正常并生成js文件.

完整greeter.ts档案:

interface Person {
    firstName: string;
    lastName: string;
}

function greeter(person: Person) {
    return "Hello, " + person.firstName + " " + person.lastName;
}

var user = { firstName: "Jane", lastName: "User" };

console.log(greeter(user));
Run Code Online (Sandbox Code Playgroud)

我为什么收到此警报?怎么解决?我看了一下这个问题,但我相信它没有关系.

javascript typescript

30
推荐指数
6
解决办法
8555
查看次数

是...... foo是运算符还是语法?

我听说...两者都称为"传播语法 "和"传播运算符 ",后者更受欢迎.相关MDN文档的URL 表明它最初被称为扩展运算符,但后来改为扩展语法,MDN的运算符列表没有提到它.

Google似乎认为术语运营商更受欢迎并被接受,其中包括Microsoft文档和es6-features.org等网站.

哪个术语在ECMAScript的上下文中最正确,如果有的话,为什么?数组解构赋值怎么样?

javascript language-lawyer ecmascript-6 spread-syntax

30
推荐指数
2
解决办法
1843
查看次数

编译时出现C++错误

我正在尝试编译游戏,但得到100多个错误,如:

C:\Users\AppData\Local\Temp\cctQCagR.o: In function `load_image(std::string)':
main.cpp:(.text+0x4bd4): undefined reference to `std::string::c_str() const'
C:\Users\Bill\AppData\Local\Temp\cctQCagR.o: In function `createShip(float, float)':
main.cpp:(.text+0x4da4): undefined reference to `std::allocator<char>::allocator()'
main.cpp:(.text+0x4dbc): undefined reference to `std::basic_string<char, std::char_tra
its<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> cons
t&)'
main.cpp:(.text+0x4de4): undefined reference to `std::basic_string<char, std::char_tra
its<char>, std::allocator<char> >::~basic_string()'
main.cpp:(.text+0x4e04): undefined reference to `std::basic_string<char, std::char_tra
its<char>, std::allocator<char> >::~basic_string()'
main.cpp:(.text+0x4e1c): undefined reference to `std::allocator<char>::~allocator()'
main.cpp:(.text+0x4e28): undefined reference to `std::allocator<char>::allocator()'
main.cpp:(.text+0x4e40): undefined reference to `std::basic_string<char, std::char_tra
its<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> cons
t&)'
main.cpp:(.text+0x4e60): undefined reference to `std::allocator<char>::~allocator()' …
Run Code Online (Sandbox Code Playgroud)

c++ gcc

27
推荐指数
2
解决办法
4万
查看次数

为什么三元运算符中的逗号会在JavaScript中引发语法错误?

当我尝试在条件(三元)运算符中使用逗号运算符进行日志记录时,我注意到了一些奇怪的事情.这是一个人为的例子:

const a = 2;
const b = 1;
a > b ? console.log(a), a : b; //I expect this to log and evaluate to a
Run Code Online (Sandbox Code Playgroud)

但相反,我遇到了这个:

Uncaught SyntaxError: Unexpected token ,
Run Code Online (Sandbox Code Playgroud)

根据MDN文档,条件运算符接受两个表达式作为三元运算符的"if"和"else"情况,而逗号运算符理论上是表达式,

逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值.

那我为什么会出现语法错误?逗号运算符是一个表达式,应该允许它在条件运算符中.虽然,在逗号的操作数周围加括号可以正常工作:

a > b ? (console.log(a), a) : b; //Logs and gives a
Run Code Online (Sandbox Code Playgroud)

为什么这样可行?圆括号(或分组运算符)允许解释者知道它在处理一个表达式,但console.log(a), a是已经无需括号的表达,所以为什么我得到一个语法错误,没有他们?

javascript ternary-operator syntax-error language-lawyer ecmascript-6

22
推荐指数
1
解决办法
1008
查看次数

具有负值的CSS转换延迟?

我试图理解CSS transition-delay属性的负值.请先查看代码示例.有两个divs具有不同的转换延迟.

我认为给延迟的负值与给right div(0.2s)给出一个正值是一样的,但它的行为不一样.我认为它不会0.2s使转换变得过分.

  • 任何人都可以解释一下负面transition-delay价值做什么?
  • 是transition-delay有效的负值,还是应该不使用?
  • 如果可以使用它们,那么什么是好用例?

function toggle() {
  var left = document.querySelector('.left');
  var right = document.querySelector('.right');
  left.classList.toggle('hidden');
  right.classList.toggle('hidden');
  left.classList.toggle('show');
  right.classList.toggle('show');
}
window.setInterval(toggle, 1500);
window.setTimeout(toggle, 100);
Run Code Online (Sandbox Code Playgroud)
#container {
  background: yellow;
  display: flex;
  width: 200px;
  height: 200px;
  overflow: hidden;
}
.left,
.right {
  flex: 1;
}
.left {
  background: red;
  transition: transform 1s -0.2s cubic-bezier(0.19, 1, 0.22, 1);
}
.right {
  background: blue;
  transition: transform 1s cubic-bezier(0.19, 1, …
Run Code Online (Sandbox Code Playgroud)

html javascript css css3 css-transitions

18
推荐指数
2
解决办法
2984
查看次数

为什么我不能引用val或typealias引用对象的嵌套对象?

请考虑以下代码:

object SomeObjectA {
    object SomeObjectB {
        val a = "test"
    }
}

val X = SomeObjectA
typealias Y = SomeObjectA

SomeObjectA.SomeObjectB // works
X.SomeObjectB // error
Y.SomeObjectB // error
Run Code Online (Sandbox Code Playgroud)

我不能引用使用val或typealias引用外部对象的嵌套对象(在外部对象中).为什么?

reference inner-classes kotlin

18
推荐指数
2
解决办法
1201
查看次数

为什么instanceof在这里评估为true?

在此代码段中,语句f instanceof PipeWritable返回true(Node v8.4.0):

const stream = require('stream');
const fs = require('fs');

class PipeWritable extends stream.Writable {
    constructor () {
        super();
    }
}

const s = new PipeWritable();
const f = fs.createWriteStream('/tmp/test');

console.log(f instanceof PipeWritable); // true ... ???
Run Code Online (Sandbox Code Playgroud)

对象s:

  • Object.getPrototypeOf(s) 是 PipeWritable {}
  • s.constructor 是 [Function: PipeWritable]
  • PipeWritable.prototype 是 PipeWritable {}

对象f:

  • Object.getPrototypeOf(f) 是 WriteStream { ... }
  • f.constructor 是 [Function: WriteStream] ...
  • stream.WriteStream.prototype 是 Writable { ... }

原型链:

Object f …
Run Code Online (Sandbox Code Playgroud)

javascript node.js ecmascript-6

18
推荐指数
1
解决办法
515
查看次数

当设置为JavaScript对象的属性名称时,是否需要引用保留字?

给定一个对象文字或jQuery(html, attributes)对象,是否有任何规范说明保留字或未来的保留字必须引用?

或者,例如,class可以设置为对象的属性名称,而不使用引号括起属性名称,而不违反有关标识符,属性名称或保留字的使用的规范?

寻求关于这个问题的确凿答案以避免混淆.

let objLit = {
  class: 123,
  var: "abc",
  let: 456,
  const: "def",
  import: 789
}

console.dir(objLit);

jQuery("<div>012</div>", {
  class: "ghi"
})
.appendTo("body");
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
Run Code Online (Sandbox Code Playgroud)

有关:

规格

标识符名称是根据所述中给出的语法解释令牌Unicode标准的第5章的"标识符"部分,与一些小的修改.
标识符是不是ReservedWord的IdentifierName

javascript language-lawyer ecmascript-5

16
推荐指数
1
解决办法
910
查看次数

React中的"无法在现有状态转换期间更新"错误

我正在尝试做这个ReactJS教程的第15步:React.js简介适用于知道jQuery足够的人

作者建议如下:

overflowAlert: function() {
  if (this.remainingCharacters() < 0) {
    return (
      <div className="alert alert-warning">
        <strong>Oops! Too Long:</strong>
      </div>
    );
  } else {
    return "";
  }
},

render() {
  ...

  { this.overflowAlert() }

  ...
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下操作(看起来对我来说不错):

// initialized "warnText" inside "getInitialState"


overflowAlert: function() {
  if (this.remainingCharacters() < 0) {
    this.setState({ warnText: "Oops! Too Long:" });
  } else {
    this.setState({ warnText: "" });
  }
},

render() {
  ...

  { this.overflowAlert() }
  <div>{this.state.warnText}</div>

  ...
}
Run Code Online (Sandbox Code Playgroud)

我在Chrome开发工具的控制台中收到以下错误:

在现有状态转换期间无法更新(例如在内部render或另一个组件的构造函数中).渲染方法应该是道具和状态的纯函数; 构造函数的副作用是反模式,但可以移动到componentWillMount …

javascript reactjs

14
推荐指数
2
解决办法
2万
查看次数

为什么我不能在元素标记中包含JSX注释?

我遵循将多属性标签分解为多行的常见模式,例如.

<div
  className="foo"
  style={{ fontWeight: "bold" }}
/>
Run Code Online (Sandbox Code Playgroud)

我想在声明中添加一条评论,例如.

<div
  className="foo"
  {/* This is only temporary */}
  style={{ fontWeight: "bold" }}
/>
Run Code Online (Sandbox Code Playgroud)

但是上面的语法不起作用; 我明白了:

SyntaxError: Unexpected token, expected ... (45:96)
Run Code Online (Sandbox Code Playgroud)

(指着收盘}于temporary */})是否可以添加注释标签内的JSX,如果是这样,我应该使用什么语法?

reactjs react-jsx

14
推荐指数
2
解决办法
1687
查看次数