小编Jus*_*tin的帖子

错误:无法调用类型缺少调用签名的表达式

我是打字稿的新手,我有两个班.在父类我有:

abstract class Component {
  public deps: any = {};
  public props: any = {};

  public setProp(prop: string): any {
    return <T>(val: T): T => {
      this.props[prop] = val;
      return val;
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

在孩子班我有:

class Post extends Component {
  public toggleBody: string;

  constructor() {
    this.toggleBody = this.setProp('showFullBody');
  }

  public showMore(): boolean {
    return this.toggleBody(true);
  }

  public showLess(): boolean {
    return this.toggleBody(false);
  }
}
Run Code Online (Sandbox Code Playgroud)

showMore和ShowLess都给出了错误,"无法调用类型缺少调用签名的表达式".

但是,我认为setProp返回DOES的函数有一个调用签名?我想我误解了关于函数类型的重要事情,但我不知道它是什么.

谢谢!

javascript types angularjs typescript

108
推荐指数
5
解决办法
16万
查看次数

无法通过npm脚本运行babel"babel:command not found"

为了开始,我跑了:

npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-0 
Run Code Online (Sandbox Code Playgroud)

这是我的package.json:

   {
      "scripts": {
        "build": "babel src -d dist"
      },
      "devDependencies": {
        "babel-cli": "^6.6.5",
        "babel-core": "^6.7.2",
        "babel-preset-es2015": "^6.6.0",
        "babel-preset-stage-0": "^6.5.0"
      }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的.babelrc文件:

{
  "presets": ["es2015", "stage-0"]
}
Run Code Online (Sandbox Code Playgroud)

我的文件结构是这样的:

- Root
    - src
        - client 
        - server
        - test  
    - dist 
    - package.json
Run Code Online (Sandbox Code Playgroud)

我从根文件夹调用npm run build.我期待它将源文件夹编译到dist文件夹中.它运行然后我收到此错误:

> babel src -d dist

sh: babel: command not found

npm ERR! Darwin 15.2.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build" …
Run Code Online (Sandbox Code Playgroud)

javascript node.js npm babeljs

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

无法部署用Go编写的lambda函数

我正在尝试将我的代码部署到AWS Lambda.我用Go写的.它构建得很好,但是当通过Lambda测试功能运行它时我收到此错误:

{
  "errorMessage": "fork/exec /var/task/github-activity: no such file or directory",
  "errorType": "PathError"
}
Run Code Online (Sandbox Code Playgroud)

您可以在以下网址查看完整代码:https://github.com/JustinDFuller/github-activity 我已经测试并看到它在我的机器上运行正常.(我试过Windows和Linux).

我正在部署的文件是通过运行以下命令来完成的:

GOOS=linux GOARCH=amd64 go build -o main awsLambdaImpl.go zip main.zip main

go amazon-web-services aws-lambda

7
推荐指数
1
解决办法
2638
查看次数

Flexbox 导致 adsense 错误:“adsbygoogle.push() error: No slot size for availableWidth=0”

我有一个使用 angular-material 和 flexbox 进行布局的网站。我试图在这些 flexbox 容器之一中包含一个 Google Adsense 代码段,但它给了我错误:“adsbygoogle.push() 错误:没有可用宽度 = 0 的插槽大小”。但是,如果我将相同的代码段放在 flexbox 容器之外,它会正常运行。

这并不理想,因为我的整个网站都是用 flexbox 制作的。所以我想找到一种方法来在 flexbox 容器中完成这项工作。

这是我的代码片段:

    <div layout="column" layout-align="center center" layout-padding="" flex="flex" class="scroller container">
      <div flex="" hide-xs="" show-gt-xs="">
        <h1>My Account</h1>
      </div>
      <welcome></welcome>
      <script async="" defer="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
      <!-- responsive ad-->
      <ins flex="grow" style="width:100%;min-width:100px;height:100px;" data-ad-client="ca-pub-IDISHEREONMYSITE" data-ad-slot="IDISHEREONMYSITE" data-ad-format="auto" class="adsbygoogle"></ins>
      <script>
        document.addEventListener("DOMContentLoaded", function(event) {
            (adsbygoogle = window.adsbygoogle || []).push({})
        });
      </script>
    </div>
Run Code Online (Sandbox Code Playgroud)

我还尝试将谷歌广告中对 flex 的所有引用替换为仅 display:block; 我尝试使用宽度、无宽度、最小宽度、最大宽度,所有这些都一起使用。我试过把它放在一个 div 中,这个 div 是一个 flexbox 列,我试过把它放在一个 div 中,即 display:block; 具有固定宽度等

它似乎都不起作用。 …

javascript css adsense flexbox angular-material

6
推荐指数
1
解决办法
2791
查看次数

是否可以将类似于git钩子的SVN钩子添加到NPM?

我想添加一个npm脚本,它将在svn提交发生之前运行我的linting和测试.

如果linting或者测试失败,我希望提交停止,就像使用git commit hook一样.

有谁知道包裹?我一直在寻找没有真正的运气.

javascript svn node.js npm

5
推荐指数
1
解决办法
437
查看次数

在反应状态下使用复杂的对象是不是很糟糕?

我正在使用 React 编写一个应用程序,它在组件的状态中存储了一些数据。

我最初选择将数据包装在一个函数中,该函数将封装可以对数据执行的所有操作。

为了保持这个问题的通用性,我将展示我的示例作为待办事项。我的实际用例更为复杂。

function Todo(todo = EmptyTodo) {
  // helper function to easily create immutable methods below
  function merge(update) {
    return Todo(Object.assign({}, todo, update))
  }

  return {
    getComplete() { 
      return todo.complete
    },
    getText() { 
      return todo.text 
    },
    toggleComplete() {
      return merge({ complete: !todo.complete })
    },
    setText(text) {
      return merge({ text })
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个例子有点不足。理想情况下,更好的示例可能不仅仅是 getter 和 setter。它可能包含更接近业务逻辑的内容。

继续,现在我Todo在反应组件中使用了这样的:

class TodoRow extends React.Component {
  state = {
    todo: Todo()
  }

  handleToggleComplete = () => this.setState(state => …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

5
推荐指数
1
解决办法
2521
查看次数

是否可以使用JavaScript编辑<script type ="text/template">的内容?

这是我正在尝试编辑的示例:

<script id="login-popup" type="text/template"> 
  <h3 id="cover-msg" class="modal-title">You need to login to do that.</h3>`
</script>
Run Code Online (Sandbox Code Playgroud)

我想补充一下:class="title"到h3标签.这是通过chrome扩展来完成的,因此我无法控制呈现的HTML.

这里有一点需要注意:我不能假设模板总是一样的,所以我不能只替换或编辑整个模板.我需要能够在文本中选择某些元素,并且只根据需要添加内容.

我遇到的问题是模板似乎只是纯文本.所以我不能用类似的东西选择它#login-popup #cover-msg.如果我错了,请纠正我.

是否可以使用JavaScript/jQuery执行此操作?

html javascript jquery

3
推荐指数
1
解决办法
1650
查看次数

Webpack不创建输出文件(不使用webpack-dev-server)

我正在使用webpack(不是dev-server,我知道它不输出文件),并且它没有创建dist文件夹或输出文件。

我试过直接通过webpack(全局安装)运行它,npm run build并使用本地安装的webpack。都不起作用。

这是我的配置:

const path = require('path');

module.exports = {
  entry: {
    app: './src/entry.js',
  },
  output: {
    path: path.join('/dist'),
    filename: '[name].bundle.js',
  },
  module: {
    loaders: [
      {
        test: /\.tsx?$/,
        loader: 'ts-loader',
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loaders: ['ng-annotate'],
      },
      {
        test: /\.js$/,
        exclude: /(node_modules)/,
        loader: 'babel', // 'babel-loader' is also a legal name to reference
        query: {
          presets: ['es2015', 'latest'],
        },
      },
      {
        test: /\.css$/,
        loader: 'style-loader!css-loader',
      },
      {
        test: /\.html$/,
        loader: 'html', …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs typescript webpack babeljs

3
推荐指数
1
解决办法
5282
查看次数