鉴于我的班级
<?php
declare(strict_types=1);
use Illuminate\Support\Collection;
use stdClass;
class PhpstanIssue
{
/**
* @param Collection<Collection<stdClass>> $collection
*
* @return Collection<Foo>
*/
public function whyDoesThisFail(Collection $collection): Collection
{
return $collection
->flatten() // Collection<stdClass>
->map(static function (\stdClass $std): ?Foo {
return Foo::get($std);
}) // should now be Collection<?Foo>
->filter(); // should now be Collection<Foo>
}
}
Run Code Online (Sandbox Code Playgroud)
我非常困惑为什么 phpstan (0.12.64) 会失败:
18: [ERROR] Method PhpstanIssue::whyDoesThisFail() should return
Illuminate\Support\Collection&iterable<Foo> but returns
Illuminate\Support\Collection&iterable<Illuminate\Support\Collection&iterable<stdClass>>. (phpstan)
Run Code Online (Sandbox Code Playgroud)
为什么 phpstan 无法推断出该管道的正确结果类型?如何让 phpstan 理解管道?
我可以验证我的代码在 phpunit 测试用例中是否有效:
class MyCodeWorks extends TestCase …Run Code Online (Sandbox Code Playgroud) 我想click在一个字体真棒图标上绑定事件.然而,图标本身不可点击,只有当我插入其他文本时,该文本才会被绑定.
如何绑定图标本身?
<span class="icon-star">
only this text is clickable, the icon itself is not
</span>
<script type="text/javascript">
(function($) {
$('span.icon-star').on('click', function() {
console.log($(this));
});
})(jQuery);
</script>
Run Code Online (Sandbox Code Playgroud) 我正在JPanel上画一条蓝线
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
super.paint(g2);
if (path.size() >= 2) {
BasisStroke stroke = new BasicStroke(Config.TILE_SIZE_IN_PIXEL / 3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL);
g2.setStroke(stroke);
g2.setPaint(Color.BLUE);
g2.setPaintMode();
for (int i = 0; i < path.size() - 1; i++) {
g2.drawLine(path.get(i).x, path.get(i).y, path.get(i + 1).x, path.get(i + 1).y);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我希望这条线是半透明的.我如何实现这一目标?
当我在phpstorm中编写代码时,它会在我从自动完成中选择一个类时添加use语句.
所以写作$pagerfanta = new Pagerfanta(new DoctrineORMAdapter($query));将添加两个用语:
use Pagerfanta\Pagerfanta;
use Pagerfanta\Adapter\DoctrineORMAdapter;
Run Code Online (Sandbox Code Playgroud)
然而,当我将包含的块复制粘贴或提取$pagerfanta = new Pagerfanta(new DoctrineORMAdapter($query));到新类时,将不会添加use语句.PhpStorm通过添加不同的背景颜色将它们显示为缺失.
尽管如此,我经常忘记添加use语句,因此我想知道,如果我可以配置PhpStorm在复制粘贴时为我添加这些use语句.
在symfony2项目中,我使用的是"jms/serializer-bundle",我的一个依赖项存在问题,即 jms/metadatalibary.我已经分叉了元数据库并在bugfix-doctrine-proxy分支中包含了一个修复程序.
现在我想知道如何告诉作曲家,在需要依赖时它应该使用我的分支?
序列化程序库的composer.json:
{
"name": "jms/serializer",
"type": "library",
...
],
"require": {
"php": ">=5.3.2",
"jms/metadata": "~1.1",
"jms/parser-lib": "1.*",
"phpcollection/phpcollection": "~0.1",
"doctrine/annotations": "1.*"
},
...
}
Run Code Online (Sandbox Code Playgroud)
我的symfony2-project composer.json:
{
...
"repositories": [
{
"type": "git",
"url": "git@github.com:hauptsacheNet/metadata.git"
}
],
"require": {
"jms/serializer-bundle": "dev-master",
...
}
}
Run Code Online (Sandbox Code Playgroud) 编写此代码是否有更简单,更有效的方法?这是一个计算吸烟成本的计算器.
必须有一种方法可以跳过所有if和elif标签,并使其成为一个循环并节省几分钟的代码输入,甚至可能有一个"标准"如何输入我错过的代码.
how_many = int(input('How many ciggaretes do you smoke each day?\n'))
per_package = int(input('How much does your package cost?\n'))
contain = int(input('How many ciggaretes does the package contain?\n'))
cost_st = per_package / contain
choice = input('Do you want to calculate the cost per "Day (D)" / "Week (W)" / "Year (Y)" / "Decade (DE)"?\n')
if choice == 'D':
cost_day = cost_st * how_many
print("It will cost", cost_day ,"kr per day.")
elif choice == 'W':
cost_week …Run Code Online (Sandbox Code Playgroud) 我有一个带有提交按钮的简单 HTML 表单。点击此按钮后,我想查看div#my_id以前不可见的内容。
<input type="submit" name="xxx" value="yyy" onclick="document.getElementById('my_id').style.display = 'block' ;">
<div id="my_id" style="display: none"> My text </div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它发挥作用?
我想在我的工作流程中添加tslint.我通过以下方式安装:
npm install tslint tslint-config-ms-recommended --save-dev
Run Code Online (Sandbox Code Playgroud)
我tslint.json看起来像:
{
"extends": "tslint-config-ms-recommended"
}
Run Code Online (Sandbox Code Playgroud)
然而,当我跑:
./node_modules/.bin/tslint src/**/*.ts
Run Code Online (Sandbox Code Playgroud)
它还会检查很多明确键入的文件,例如:
src/interfaces/highland.d.ts[621, 1]: space indentation expected
src/interfaces/highland.d.ts[622, 1]: space indentation expected
src/interfaces/highland.d.ts[635, 1]: space indentation expected
Run Code Online (Sandbox Code Playgroud)
污染输出.
我想只检查我的*.ts文件,并且正在寻找忽略其他类型的方法.
我看到有一个--exclude选项,但它在运行时仍显示d.ts文件:
./node_modules/.bin/tslint src/**/*.ts --exclude src/**/*.d.ts
Run Code Online (Sandbox Code Playgroud) 我想介绍一个可以在多个项目中共享的打字稿编码指南.我不想复制粘贴tslint.json多次,它已经发生了,我们已经发布了它的分歧版本.
我想以我的指南为基础tslint:recommended.我看到tslint语法允许extend,但我不清楚它的用法以及如何构造这样的包.
这样的项目可以仅仅是一个tslint.json本身,还是我需要导出一个模块?
我希望包然后在npm/sinopia实例上托管,但我不确定如何继续.
在我的打字稿项目中,我使用:
const program = require('commander');
const figlet = require('figlet');
const AWS = require('aws-sdk');
Run Code Online (Sandbox Code Playgroud)
并且我想重构这些行以使其工作import,以遵守 tslint 的no-var-requires规则。然而,它应该工作的方式让我望而却步。
对于 figlet,我都尝试了:
import figlet from 'figlet';
import * as figlet from 'figlet';
Run Code Online (Sandbox Code Playgroud)
然后我得到:
bin/console.ts(1,20): error TS2307: Cannot find module 'figlet'.
Run Code Online (Sandbox Code Playgroud)
我该如何导入这些库?
tslint ×3
typescript ×3
php ×2
autocomplete ×1
composer-php ×1
font-awesome ×1
graphics2d ×1
ide ×1
java ×1
javascript ×1
jpanel ×1
jquery ×1
laravel ×1
line ×1
npm ×1
phpstan ×1
phpstorm ×1
python ×1
symfony ×1
transparency ×1