我是打字稿的新手,我有两个班.在父类我有:
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的函数有一个调用签名?我想我误解了关于函数类型的重要事情,但我不知道它是什么.
谢谢!
为了开始,我跑了:
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) 我正在尝试将我的代码部署到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
我有一个使用 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; 具有固定宽度等
它似乎都不起作用。 …
我想添加一个npm脚本,它将在svn提交发生之前运行我的linting和测试.
如果linting或者测试失败,我希望提交停止,就像使用git commit hook一样.
有谁知道包裹?我一直在寻找没有真正的运气.
我正在使用 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) 这是我正在尝试编辑的示例:
<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执行此操作?
我正在使用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)