功能的分配兼容性:为什么可以将'((v:number)=> any')分配给'(v ?: number)=> any'?

时间:2018-12-27 12:33:22

标签: typescript

我想知道为什么下面的代码可以通过类型检查。

TypeScript 3.2.1

   public void search(String vorname, String nachname, String telefonnummer, String handynummer) {  
    telefonbuch.setVorname(vorname);
    telefonbuch.setNachname(nachname);
    telefonbuch.setTelefonnummer(telefonnummer);
    telefonbuch.setHandynummer(handynummer);

    CriteriaBuilder builder = em.getCriteriaBuilder();
    CriteriaQuery<Telefonbuch> query = builder.createQuery(Telefonbuch.class);
    Root<Telefonbuch> root = query.from(Telefonbuch.class);
    List<Predicate> predicates = new ArrayList<Predicate>();



    if (!vorname.isEmpty()) {   
        //eintraege = telefonbuchRepository.findAll(hasVorname()); -> does not work
        Predicate condition = builder.like(builder.lower(root.get(Telefonbuch_.vorname)), "%"+vorname.toLowerCase()+"%");
        predicates.add(condition);
    }
...
query.select(root).where(predicates.toArray(new Predicate[predicates.size()]));

我希望分配会导​​致编译器错误。

1 个答案:

答案 0 :(得分:0)

这取决于您的编译器设置。要在这种情况下出现错误,您需要启用strictFunctionTypesstrictNullChecks